09:53:02.609 [info] GET /config/local.json 09:53:02.609 [debug] QUERY OK source="settings" db=0.1ms idle=1019.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:02.609 [debug] QUERY OK source="settings" db=0.1ms idle=1020.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:02.609 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:02.610 [error] #PID<0.188819.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 141) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config/local.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/local (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/local.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 141, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188819.0>, params: %{}, path_info: ["config", "local"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/local.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAn9OUNsvyb-QAVQgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/local.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 141, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/local (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/local.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 141, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188819.0>, params: %{}, path_info: ["config", "local"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/local.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request- (truncated) 09:53:03.382 [info] GET /conf/settings.json 09:53:03.382 [debug] QUERY OK source="settings" db=0.1ms idle=1349.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:03.382 [debug] QUERY OK source="settings" db=0.0ms idle=1191.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:03.382 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:03.383 [error] #PID<0.188820.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 142) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /conf/settings.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 /conf/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/conf/settings.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 142, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188820.0>, params: %{}, path_info: ["conf", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/conf/settings.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoAGn7_YOqWsAVQiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/conf/settings.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 142, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /conf/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/conf/settings.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 142, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188820.0>, params: %{}, path_info: ["conf", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/conf/settings.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {" (truncated) 09:53:03.874 [info] GET /data/config.json 09:53:03.875 [debug] QUERY OK source="settings" db=0.2ms idle=1265.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:03.875 [debug] QUERY OK source="settings" db=0.0ms idle=1265.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:03.875 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:03.875 [error] #PID<0.188821.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 143) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /data/config.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /data/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/data/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 143, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188821.0>, params: %{}, path_info: ["data", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/data/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoB8FO4bWK0UAVQkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/data/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 143, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /data/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/data/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 143, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188821.0>, params: %{}, path_info: ["data", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/data/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA (truncated) 09:53:04.399 [info] GET /actuator/env 09:53:04.399 [debug] QUERY OK source="settings" db=0.1ms idle=1016.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:04.399 [debug] QUERY OK source="settings" db=0.1ms idle=1016.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:04.399 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:04.400 [error] #PID<0.188822.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 144) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /actuator/env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /actuator/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 144, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188822.0>, params: %{}, path_info: ["actuator", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/actuator/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoD5E8VUZEMMAVQmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 144, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /actuator/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 144, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188822.0>, params: %{}, path_info: ["actuator", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/actuator/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoD5E8VUZEMMAVQmB"} (truncated) 09:53:04.964 [info] GET /actuator/configprops 09:53:04.965 [debug] QUERY OK source="settings" db=0.1ms idle=1089.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:04.965 [debug] QUERY OK source="settings" db=0.0ms idle=1089.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:04.965 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:04.965 [error] #PID<0.188823.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 145) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /actuator/configprops ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /actuator/configprops (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/configprops", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 145, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188823.0>, params: %{}, path_info: ["actuator", "configprops"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/actuator/configprops", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoF_5453rXlkAVQoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/configprops", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 145, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /actuator/configprops (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/actuator/configprops", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 145, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188823.0>, params: %{}, path_info: ["actuator", "configprops"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/actuator/configprops", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, pr (truncated) 09:53:05.718 [info] GET /api/config 09:53:05.718 [debug] QUERY OK source="settings" db=0.1ms idle=753.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:05.719 [debug] QUERY OK source="settings" db=0.0ms idle=753.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:05.719 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:05.719 [error] #PID<0.188824.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 146) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 146, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188824.0>, params: %{}, path_info: ["api", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoIzmVsPeyz0AVQqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 146, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 146, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188824.0>, params: %{}, path_info: ["api", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoIzmVsPeyz0AVQqB"} ], (truncated) 09:53:06.257 [info] GET /api/settings 09:53:06.257 [debug] QUERY OK source="settings" db=0.1ms idle=703.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:06.258 [debug] QUERY OK source="settings" db=0.0ms idle=703.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:06.258 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:06.258 [error] #PID<0.188825.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 147) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/settings ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/settings", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 147, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188825.0>, params: %{}, path_info: ["api", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/settings", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoK0KZKG5Cs4AVQsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/settings", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 147, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/settings", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 147, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188825.0>, params: %{}, path_info: ["api", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/settings", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoK0KZKG5Cs4AVQsB"} (truncated) 09:53:06.813 [info] GET /api/env 09:53:06.814 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=1094.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:06.814 [debug] QUERY OK source="settings" db=0.0ms idle=1095.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:06.814 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:06.814 [error] #PID<0.188826.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 148) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/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 /api/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 148, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188826.0>, params: %{}, path_info: ["api", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoM4tM9-wzd8AVQuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 148, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 148, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188826.0>, params: %{}, path_info: ["api", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoM4tM9-wzd8AVQuB"} ], scheme: :http, scr (truncated) 09:53:07.328 [info] GET /backup/.env 09:53:07.328 [debug] QUERY OK source="settings" db=0.1ms idle=1070.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:07.329 [debug] QUERY OK source="settings" db=0.1ms idle=1070.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:07.329 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:07.329 [error] #PID<0.188827.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 149) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /backup/.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 /backup/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backup/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 149, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188827.0>, params: %{}, path_info: ["backup", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/backup/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoOzez_sYZEoAVQwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backup/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 149, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backup/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backup/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 149, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188827.0>, params: %{}, path_info: ["backup", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/backup/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoOzez_sYZEoAVQwB"} ], sche (truncated) 09:53:08.095 [info] GET /backups/.env 09:53:08.096 [debug] QUERY OK source="settings" db=0.1ms idle=1282.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:08.096 [debug] QUERY OK source="settings" db=0.1ms idle=1282.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:08.096 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:08.096 [error] #PID<0.188828.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 150) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /backups/.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 /backups/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backups/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 150, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188828.0>, params: %{}, path_info: ["backups", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/backups/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoRqcXlaCC9cAKayD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backups/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 150, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backups/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backups/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 150, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188828.0>, params: %{}, path_info: ["backups", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/backups/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoRqcXlaCC9cAKayD"} ], (truncated) 09:53:08.602 [info] GET /old/.env 09:53:08.603 [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 [] 09:53:08.603 [debug] QUERY OK source="settings" db=0.1ms idle=506.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:08.603 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:08.603 [error] #PID<0.188829.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 151) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /old/.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 /old/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/old/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 151, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188829.0>, params: %{}, path_info: ["old", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/old/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoTjUw9UDMi4AVQyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/old/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 151, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /old/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/old/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 151, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188829.0>, params: %{}, path_info: ["old", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/old/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoTjUw9UDMi4AVQyB"} ], scheme: :http, script_na (truncated) 09:53:09.088 [info] GET /temp/.env 09:53:09.089 [debug] QUERY OK source="settings" db=0.1ms idle=887.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:09.089 [debug] QUERY OK source="settings" db=0.1ms idle=534.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:09.089 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:09.089 [error] #PID<0.188830.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 152) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /temp/.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 /temp/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/temp/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 152, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188830.0>, params: %{}, path_info: ["temp", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/temp/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoVXJnLgOXJQAVQ0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/temp/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 152, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /temp/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/temp/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 152, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188830.0>, params: %{}, path_info: ["temp", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/temp/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoVXJnLgOXJQAVQ0B"} ], scheme: :http, (truncated) 09:53:09.579 [info] GET /tmp/.env 09:53:09.579 [debug] QUERY OK source="settings" db=0.2ms idle=976.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:09.580 [debug] QUERY OK source="settings" db=0.1ms idle=976.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:09.580 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:09.580 [error] #PID<0.188831.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 153) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /tmp/.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 /tmp/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/tmp/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 153, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188831.0>, params: %{}, path_info: ["tmp", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/tmp/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoXMJ7erxd00AVQ2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/tmp/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 153, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /tmp/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/tmp/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 153, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188831.0>, params: %{}, path_info: ["tmp", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/tmp/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoXMJ7erxd00AVQ2B"} ], scheme: :http, script_na (truncated) 09:53:10.064 [info] GET /.streamlit/secrets.toml 09:53:10.065 [debug] QUERY OK source="settings" db=0.1ms idle=975.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:10.065 [debug] QUERY OK source="settings" db=0.0ms idle=975.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:10.065 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:10.065 [error] #PID<0.188832.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 154) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.streamlit/secrets.toml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.streamlit/secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.streamlit/secrets.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 154, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188832.0>, params: %{}, path_info: [".streamlit", "secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.streamlit/secrets.toml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoY_37VGj-fkAVQ4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.streamlit/secrets.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 154, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.streamlit/secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.streamlit/secrets.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 154, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188832.0>, params: %{}, path_info: [".streamlit", "secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.streamlit/secrets.toml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max (truncated) 09:53:10.941 [info] GET /root/.streamlit/secrets.toml 09:53:10.941 [debug] QUERY OK source="settings" db=0.1ms idle=1361.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:10.942 [debug] QUERY OK source="settings" db=0.0ms idle=1361.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:10.942 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:10.942 [error] #PID<0.188833.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 155) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /root/.streamlit/secrets.toml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.streamlit/secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.streamlit/secrets.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 155, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188833.0>, params: %{}, path_info: ["root", ".streamlit", "secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.streamlit/secrets.toml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAocQ4QUFWweIAVQ6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.streamlit/secrets.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 155, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.streamlit/secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.streamlit/secrets.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 155, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188833.0>, params: %{}, path_info: ["root", ".streamlit", "secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.streamlit/secrets.toml", resp_body: nil, resp_cookies: %{}, (truncated) 09:53:11.420 [info] GET /root/.aws/credentials 09:53:11.420 [debug] QUERY OK source="settings" db=0.2ms idle=1355.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:11.421 [debug] QUERY OK source="settings" db=0.1ms idle=1217.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:11.421 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:11.421 [error] #PID<0.188834.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 156) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /root/.aws/credentials ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 156, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188834.0>, params: %{}, path_info: ["root", ".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.aws/credentials", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoeDD6AVRd94AVQ8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 156, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 156, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188834.0>, params: %{}, path_info: ["root", ".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.aws/credentials", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control" (truncated) 09:53:11.930 [info] GET /home/ubuntu/.aws/credentials 09:53:11.930 [debug] QUERY OK source="settings" db=0.1ms idle=988.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:11.930 [debug] QUERY OK source="settings" db=0.0ms idle=988.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:11.930 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:11.931 [error] #PID<0.188835.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 157) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /home/ubuntu/.aws/credentials ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/ubuntu/.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 157, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188835.0>, params: %{}, path_info: ["home", "ubuntu", ".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/ubuntu/.aws/credentials", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAof8oCp8xvXIAVQ-B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 157, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/ubuntu/.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 157, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188835.0>, params: %{}, path_info: ["home", "ubuntu", ".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/ubuntu/.aws/credentials", resp_body: nil, (truncated) 09:53:12.797 [info] GET /home/ec2-user/.aws/credentials 09:53:12.797 [debug] QUERY OK source="settings" db=0.1ms idle=867.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:12.798 [debug] QUERY OK source="settings" db=0.0ms idle=867.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:12.798 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:12.798 [error] #PID<0.188836.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 158) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /home/ec2-user/.aws/credentials ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/ec2-user/.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ec2-user/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 158, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188836.0>, params: %{}, path_info: ["home", "ec2-user", ".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/ec2-user/.aws/credentials", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAojLWldvBYnkAVRAB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ec2-user/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 158, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/ec2-user/.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ec2-user/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 158, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188836.0>, params: %{}, path_info: ["home", "ec2-user", ".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/ec2-user/.aws/credentials", res (truncated) 09:53:13.312 [info] GET /home/node/.aws/credentials 09:53:13.313 [debug] QUERY OK source="settings" db=0.1ms idle=758.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:13.313 [debug] QUERY OK source="settings" db=0.0ms idle=758.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:13.313 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:13.313 [error] #PID<0.188837.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 159) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /home/node/.aws/credentials ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/node/.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/node/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 159, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188837.0>, params: %{}, path_info: ["home", "node", ".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/node/.aws/credentials", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAolGQa43Mm_IAVRCB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/node/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 159, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/node/.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/node/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 159, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188837.0>, params: %{}, path_info: ["home", "node", ".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/node/.aws/credentials", resp_body: nil, resp_cookies: %{} (truncated) 09:53:13.867 [info] GET /terraform.tfvars 09:53:13.867 [debug] QUERY OK source="settings" db=0.1ms idle=1069.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:13.867 [debug] QUERY OK source="settings" db=0.0ms idle=1069.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:13.867 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:13.868 [error] #PID<0.188838.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 160) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /terraform.tfvars ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /terraform (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/terraform.tfvars", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 160, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188838.0>, params: %{}, path_info: ["terraform"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/terraform.tfvars", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAonKbQASR1RwAVREB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/terraform.tfvars", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 160, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /terraform (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/terraform.tfvars", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 160, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188838.0>, params: %{}, path_info: ["terraform"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/terraform.tfvars", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAonKbQASR1RwAVR (truncated) 09:53:14.325 [info] GET /terraform.tfstate 09:53:14.326 [debug] QUERY OK source="settings" db=0.1ms idle=1012.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:14.326 [debug] QUERY OK source="settings" db=0.0ms idle=1012.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:14.326 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:14.326 [error] #PID<0.188839.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 161) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /terraform.tfstate ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /terraform (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/terraform.tfstate", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 161, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188839.0>, params: %{}, path_info: ["terraform"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/terraform.tfstate", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoo3v-WHzQyYAVRGB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/terraform.tfstate", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 161, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /terraform (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/terraform.tfstate", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 161, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188839.0>, params: %{}, path_info: ["terraform"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/terraform.tfstate", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoo3v-WHz (truncated) 09:53:15.012 [info] GET /ecosystem.config.js 09:53:15.013 [debug] QUERY OK source="settings" db=0.1ms idle=1145.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:15.013 [debug] QUERY OK source="settings" db=0.0ms idle=1145.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:15.013 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:15.013 [error] #PID<0.188840.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 162) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /ecosystem.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 /ecosystem.config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ecosystem.config.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 162, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188840.0>, params: %{}, path_info: ["ecosystem.config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/ecosystem.config.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAorbjEU9NgmwAVRIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ecosystem.config.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 162, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ecosystem.config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ecosystem.config.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 162, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188840.0>, params: %{}, path_info: ["ecosystem.config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/ecosystem.config.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, (truncated) 09:53:15.544 [info] GET /secrets.yaml 09:53:15.545 [debug] QUERY OK source="settings" db=0.1ms idle=1219.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:15.545 [debug] QUERY OK source="settings" db=0.1ms idle=1219.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:15.545 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:15.546 [error] #PID<0.188841.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 163) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /secrets.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 /secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 163, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188841.0>, params: %{}, path_info: ["secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/secrets.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAotadbhfvmhEAVRKB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 163, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 163, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188841.0>, params: %{}, path_info: ["secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/secrets.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAotadbhfvmhEAVRKB"} ], sche (truncated) 09:53:16.015 [info] GET /secrets.yml 09:53:16.015 [debug] QUERY OK source="settings" db=0.1ms idle=1002.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:16.016 [debug] QUERY OK source="settings" db=0.0ms idle=1002.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:16.016 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:16.016 [error] #PID<0.188842.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 164) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /secrets.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 164, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188842.0>, params: %{}, path_info: ["secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/secrets.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAovKnL79srusAVRMB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 164, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 164, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188842.0>, params: %{}, path_info: ["secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/secrets.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAovKnL79srusAVRMB"} ], scheme: :h (truncated) 09:53:16.548 [info] GET /.secrets 09:53:16.549 [debug] QUERY OK source="settings" db=0.1ms idle=1003.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:16.549 [debug] QUERY OK source="settings" db=0.0ms idle=1003.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:16.549 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:16.549 [error] #PID<0.188843.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 165) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.secrets ** (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.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.secrets", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 165, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188843.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.secrets", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoxJxO9ptftwAVROB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.secrets", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 165, 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.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.secrets", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 165, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188843.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.secrets", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoxJxO9ptftwAVROB"} ], scheme: :http, script_name: [], secr (truncated) 09:53:17.296 [info] GET /.env.vault 09:53:17.296 [debug] QUERY OK source="settings" db=0.1ms idle=1280.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:17.296 [debug] QUERY OK source="settings" db=0.0ms idle=1086.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:17.296 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:17.296 [error] #PID<0.188844.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 166) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.vault ** (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.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.vault", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 166, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188844.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.vault", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoz788dv6igoAVRQB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.vault", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 166, 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.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.vault", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 166, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188844.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.vault", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAoz788dv6igoAVRQB"} ], scheme: :http, scr (truncated) 09:53:17.806 [info] GET /.aws/credentials 09:53:17.806 [debug] QUERY OK source="settings" db=0.1ms idle=595.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:17.807 [debug] QUERY OK source="settings" db=0.0ms idle=510.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:17.807 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:17.807 [error] #PID<0.188845.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 167) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.aws/credentials ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 167, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188845.0>, params: %{}, path_info: [".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.aws/credentials", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAo11pNqTeAmEAVRSB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 167, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 167, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188845.0>, params: %{}, path_info: [".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.aws/credentials", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {" (truncated) 09:53:18.325 [info] GET /.aws/config 09:53:18.325 [debug] QUERY OK source="settings" db=0.1ms idle=771.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:18.326 [debug] QUERY OK source="settings" db=0.1ms idle=771.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:18.326 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:18.326 [error] #PID<0.188846.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 168) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.aws/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.aws/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 168, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188846.0>, params: %{}, path_info: [".aws", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.aws/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAo3xX8JWctQQAVRUB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 168, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.aws/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 168, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188846.0>, params: %{}, path_info: [".aws", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.aws/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAo3xX8JWctQQAVRUB"} ] (truncated) 09:53:18.863 [info] GET /.docker/config.json 09:53:18.863 [debug] QUERY OK source="settings" db=0.1ms idle=1056.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:18.863 [debug] QUERY OK source="settings" db=0.0ms idle=1056.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:18.863 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:18.863 [error] #PID<0.188847.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 169) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.docker/config.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.docker/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.docker/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 169, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188847.0>, params: %{}, path_info: [".docker", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.docker/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAo5xitmKZODkAVRWB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.docker/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 169, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.docker/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.docker/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 169, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188847.0>, params: %{}, path_info: [".docker", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.docker/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, (truncated) 09:53:19.576 [info] GET /storage/framework/.env 09:53:19.577 [debug] QUERY OK source="settings" db=0.1ms idle=713.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:19.577 [debug] QUERY OK source="settings" db=0.1ms idle=713.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:19.577 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:19.577 [error] #PID<0.188850.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 170) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /storage/framework/.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 /storage/framework/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/framework/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 170, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188850.0>, params: %{}, path_info: ["storage", "framework", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/storage/framework/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAo8bsVf0RbrEAVRaB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/framework/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 170, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/framework/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/framework/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 170, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188850.0>, params: %{}, path_info: ["storage", "framework", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/storage/framework/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max (truncated) 09:53:20.169 [info] GET /laravel/.env 09:53:20.169 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:53:20.170 [debug] QUERY OK source="settings" db=0.1ms idle=615.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:20.170 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:20.170 [error] #PID<0.188851.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 171) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /laravel/.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 /laravel/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/laravel/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 171, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188851.0>, params: %{}, path_info: ["laravel", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/laravel/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAo-pBZbuqGnUAVRcB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/laravel/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 171, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /laravel/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/laravel/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 171, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188851.0>, params: %{}, path_info: ["laravel", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/laravel/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAo-pBZbuqGnUAVRcB"} ], (truncated) 09:53:20.800 [info] GET /debug/vars 09:53:20.801 [debug] QUERY OK source="settings" db=0.1ms idle=1223.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:20.801 [debug] QUERY OK source="settings" db=0.1ms idle=1223.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:20.801 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:20.801 [error] #PID<0.188852.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 172) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /debug/vars ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/vars (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/vars", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 172, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188852.0>, params: %{}, path_info: ["debug", "vars"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/debug/vars", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApA_htnpQVfIAVReB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/vars", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 172, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/vars (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/vars", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 172, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188852.0>, params: %{}, path_info: ["debug", "vars"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/debug/vars", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApA_htnpQVfIAVReB"} ], (truncated) 09:53:21.153 [info] GET /.env 09:53:21.153 [debug] QUERY OK source="settings" db=0.1ms idle=983.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:21.153 [debug] QUERY OK source="settings" db=0.1ms idle=983.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:21.153 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:21.153 [error] #PID<0.188853.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 173) terminated Server: pinchflat.econ.llc:443 (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.188662.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 173, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188853.0>, params: %{}, path_info: [""], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApCThoeWNA40AVRgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 173, 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.188662.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 173, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188853.0>, params: %{}, path_info: [""], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-contr (truncated) 09:53:21.270 [info] GET /.gcp/credentials.json 09:53:21.270 [debug] QUERY OK source="settings" db=0.1ms idle=469.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:21.270 [debug] QUERY OK source="settings" db=0.0ms idle=469.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:21.270 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:21.271 [error] #PID<0.188854.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 174) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.gcp/credentials.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 /.gcp/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.gcp/credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 174, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188854.0>, params: %{}, path_info: [".gcp", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.gcp/credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApCvdwuxLGrUAVRiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.gcp/credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 174, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.gcp/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.gcp/credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 174, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188854.0>, params: %{}, path_info: [".gcp", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.gcp/credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, mus (truncated) 09:53:21.323 [info] GET /.git/HEAD 09:53:21.323 [debug] QUERY OK source="settings" db=0.1ms idle=170.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:21.324 [debug] QUERY OK source="settings" db=0.0ms idle=170.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:21.324 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:21.324 [error] #PID<0.188855.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 175) terminated Server: pinchflat.econ.llc:443 (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.188662.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 175, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188855.0>, params: %{}, path_info: [".git", "HEAD"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/HEAD", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApC8LjZwMaTwAVRkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 175, 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.188662.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 175, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188855.0>, params: %{}, path_info: [".git", "HEAD"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/HEAD", resp_body: nil, (truncated) 09:53:21.788 [info] GET /.env.backup 09:53:21.788 [debug] QUERY OK source="settings" db=0.1ms idle=573.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:21.789 [debug] QUERY OK source="settings" db=0.0ms idle=518.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:21.789 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:21.789 [error] #PID<0.188856.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 176) terminated Server: pinchflat.econ.llc:443 (http) Request: GET /.env.backup ** (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.188662.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.backup", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 176, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188856.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.backup", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApErBrt64vJcAVRmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.backup", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 176, 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.188662.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.backup", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 176, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188856.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.backup", resp_body: nil, resp_cookies (truncated) 09:53:22.042 [info] GET /.gcp/service-account.json 09:53:22.042 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:53:22.043 [debug] QUERY OK source="settings" db=0.1ms idle=719.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.043 [info] GET /.env.old 09:53:22.043 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:22.043 [debug] QUERY OK source="settings" db=0.1ms idle=719.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.043 [debug] QUERY OK source="settings" db=0.1ms idle=254.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.043 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:22.043 [error] #PID<0.188857.0> running PinchflatWeb.Endpoint (connection #PID<0.188662.0>, stream id 177) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.gcp/service-account.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 /.gcp/service-account (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.gcp/service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 177, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188857.0>, params: %{}, path_info: [".gcp", "service-account"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.gcp/service-account.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApFnj7zRIqOsAVRoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.gcp/service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 177, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.gcp/service-account (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188662.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.gcp/service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 35488}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 177, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188857.0>, params: %{}, path_info: [".gcp", "service-account"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.gcp/service-account.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {" (truncated) 09:53:22.044 [error] #PID<0.188859.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 1) terminated Server: pinchflat.econ.llc:443 (http) Request: GET /.env.old ** (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.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.old", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188859.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.old", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApFnwNgQZW9wAVRqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.old", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.old", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188859.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.old", resp_body: nil, resp_cookies: %{}, resp_head (truncated) 09:53:22.187 [info] GET /.env.save 09:53:22.187 [debug] QUERY OK source="settings" db=0.2ms idle=398.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.188 [debug] QUERY OK source="settings" db=0.1ms idle=145.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.188 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:22.188 [error] #PID<0.188860.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 2) terminated Server: pinchflat.econ.llc:443 (http) Request: GET /.env.save ** (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.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.save", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188860.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.save", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApGKJSG_5_fsAP8wC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.save", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.save", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188860.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.save", resp_body: nil, resp_cookies: %{}, res (truncated) 09:53:22.320 [info] GET /.env.bak 09:53:22.321 [debug] QUERY OK source="settings" db=0.1ms idle=277.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.321 [debug] QUERY OK source="settings" db=0.0ms idle=277.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.321 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:22.321 [error] #PID<0.188861.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 3) terminated Server: pinchflat.econ.llc:443 (http) Request: GET /.env.bak ** (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.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.bak", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188861.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.bak", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApGp44ZwLTckAP8yC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.bak", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.bak", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188861.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.bak", resp_body: nil, resp_cookies: %{}, resp_head (truncated) 09:53:22.458 [info] GET /.env.prod 09:53:22.458 [debug] QUERY OK source="settings" db=0.1ms idle=270.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.458 [debug] QUERY OK source="settings" db=0.0ms idle=270.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.459 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:22.459 [error] #PID<0.188862.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 4) terminated Server: pinchflat.econ.llc:443 (http) Request: GET /.env.prod ** (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.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.prod", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188862.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.prod", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApHKvpSSlWGsAP80C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.prod", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.prod", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188862.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.prod", resp_body: nil, resp_cookies: %{}, res (truncated) 09:53:22.591 [info] GET /.env.production 09:53:22.591 [debug] QUERY OK source="settings" db=0.1ms idle=374.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.592 [debug] QUERY OK source="settings" db=0.0ms idle=270.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.592 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:22.592 [error] #PID<0.188863.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 5) terminated Server: pinchflat.econ.llc:443 (http) Request: GET /.env.production ** (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.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188863.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.production", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApHqfOYDRMzkAP82C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188863.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.production", resp_body: nil, (truncated) 09:53:22.622 [info] GET /gcp-credentials.json 09:53:22.622 [debug] QUERY OK source="settings" db=0.1ms idle=301.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:22.622 [debug] QUERY OK source="settings" db=0.0ms idle=163.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.622 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:22.623 [error] #PID<0.188864.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /gcp-credentials.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 /gcp-credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gcp-credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188864.0>, params: %{}, path_info: ["gcp-credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/gcp-credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApHxz-MXlx-gAP84C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gcp-credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /gcp-credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gcp-credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188864.0>, params: %{}, path_info: ["gcp-credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/gcp-credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, (truncated) 09:53:22.726 [info] GET /.env.staging 09:53:22.726 [debug] QUERY OK source="settings" db=0.1ms idle=267.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.727 [debug] QUERY OK source="settings" db=0.0ms idle=135.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.727 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:22.727 [error] #PID<0.188865.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 7) terminated Server: pinchflat.econ.llc:443 (http) Request: GET /.env.staging ** (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.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.staging", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188865.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.staging", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApIKppTvFnsoAP86C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.staging", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.staging", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188865.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.staging", resp_body: nil, resp_cookies: (truncated) 09:53:22.858 [info] GET /.env.local 09:53:22.858 [debug] QUERY OK source="settings" db=0.1ms idle=266.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.859 [debug] QUERY OK source="settings" db=0.0ms idle=236.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.859 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:22.859 [error] #PID<0.188866.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 8) terminated Server: pinchflat.econ.llc:443 (http) Request: GET /.env.local ** (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.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188866.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.local", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApIqIHWgId7sAP88C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/.env.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188866.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.local", resp_body: nil, resp_cookies: %{}, (truncated) 09:53:22.990 [info] GET /%2e%2e%2f%2eenv 09:53:22.991 [debug] QUERY OK source="settings" db=0.1ms idle=368.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.991 [debug] QUERY OK source="settings" db=0.1ms idle=264.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:22.991 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:22.991 [error] #PID<0.188867.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 9) terminated Server: pinchflat.econ.llc:443 (http) Request: GET /%2e%2e%2f%2eenv ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /%2e%2e%2f%2eenv (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/%2e%2e%2f%2eenv", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188867.0>, params: %{}, path_info: ["%2e%2e%2f%2eenv"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/%2e%2e%2f%2eenv", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApJJtxNO9pm4AP8-C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/%2e%2e%2f%2eenv", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /%2e%2e%2f%2eenv (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/%2e%2e%2f%2eenv", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188867.0>, params: %{}, path_info: ["%2e%2e%2f%2eenv"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/%2e%2e (truncated) 09:53:23.123 [info] GET /env 09:53:23.124 [debug] QUERY OK source="settings" db=0.1ms idle=397.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:23.124 [debug] QUERY OK source="settings" db=0.1ms idle=265.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:23.124 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:23.124 [error] #PID<0.188868.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 10) terminated Server: pinchflat.econ.llc:443 (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 /env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188868.0>, params: %{}, path_info: ["env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApJpbEL3SyA4AP9AC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, 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.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188868.0>, params: %{}, path_info: ["env"], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-con (truncated) 09:53:23.171 [info] GET /gcp-service-account.json 09:53:23.171 [debug] QUERY OK source="settings" db=0.1ms idle=312.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:23.171 [debug] QUERY OK source="settings" db=0.1ms idle=180.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:23.171 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:23.172 [error] #PID<0.188869.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 11) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /gcp-service-account.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 /gcp-service-account (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gcp-service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188869.0>, params: %{}, path_info: ["gcp-service-account"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/gcp-service-account.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApJ0ujglJsMoAP9CC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gcp-service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /gcp-service-account (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/gcp-service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188869.0>, params: %{}, path_info: ["gcp-service-account"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/gcp-service-account.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max (truncated) 09:53:23.258 [info] GET /config/.env 09:53:23.259 [debug] QUERY OK source="settings" db=0.1ms idle=134.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:23.259 [debug] QUERY OK source="settings" db=0.0ms idle=134.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:23.259 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:23.259 [error] #PID<0.188870.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 12) terminated Server: pinchflat.econ.llc:443 (http) Request: GET /config/.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 /config/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/config/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188870.0>, params: %{}, path_info: ["config", ""], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/config/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApKJixRqPH_sAP9EC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/config/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/config/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188870.0>, params: %{}, path_info: ["config", ""], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/config/.env", resp_body: nil, (truncated) 09:53:23.390 [info] GET /app/.env 09:53:23.390 [debug] QUERY OK source="settings" db=0.1ms idle=219.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:23.391 [debug] QUERY OK source="settings" db=0.0ms idle=219.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:23.391 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:23.391 [error] #PID<0.188871.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 13) terminated Server: pinchflat.econ.llc:443 (http) Request: GET /app/.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 /app/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/app/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188871.0>, params: %{}, path_info: ["app", ""], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/app/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApKo-bv6EFrsAP9GC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/app/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/app/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188871.0>, params: %{}, path_info: ["app", ""], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/app/.env", resp_body: nil, resp_cookies: %{}, (truncated) 09:53:23.523 [info] GET /../.env 09:53:23.524 [debug] QUERY OK source="settings" db=0.1ms idle=306.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:23.524 [debug] QUERY OK source="settings" db=0.0ms idle=265.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:23.524 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:23.524 [error] #PID<0.188872.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 14) terminated Server: pinchflat.econ.llc:443 (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.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/../.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188872.0>, params: %{}, path_info: ["..", ""], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/../.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApLIv539BlxIAP9IC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/../.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /../ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 443, scheme: "http", version: :"HTTP/1.1", path: "/../.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc:443", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "178.16.54.137", "x-forwarded-host" => "pinchflat.econ.llc:443", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188872.0>, params: %{}, path_info: ["..", ""], path_params: %{}, port: 443, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc:443"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko, Yokohama Institute of Information Security https://www.iisec.ac.jp) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "178.16.54.137"}, {"x-forwarded-host", "pinchflat.econ.llc:443"}, {"x-forwarded-proto", "https"} ], request_path: "/../.env", resp_body: nil, resp_cookies: %{}, resp_head (truncated) 09:53:23.698 [info] GET /service-account.json 09:53:23.698 [debug] QUERY OK source="settings" db=0.1ms idle=439.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:23.699 [debug] QUERY OK source="settings" db=0.0ms idle=308.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:23.699 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:23.699 [error] #PID<0.188873.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 15) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /service-account.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 /service-account (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188873.0>, params: %{}, path_info: ["service-account"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/service-account.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApLybXEvVK6YAP9KC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /service-account (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188873.0>, params: %{}, path_info: ["service-account"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/service-account.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, (truncated) 09:53:24.277 [info] GET /google-credentials.json 09:53:24.278 [debug] QUERY OK source="settings" db=0.1ms idle=753.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:24.278 [debug] QUERY OK source="settings" db=0.0ms idle=753.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:24.278 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:24.278 [error] #PID<0.188874.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 16) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /google-credentials.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 /google-credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/google-credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188874.0>, params: %{}, path_info: ["google-credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/google-credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApN8gdR-LPMAAP9MC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/google-credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /google-credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/google-credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188874.0>, params: %{}, path_info: ["google-credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/google-credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, pr (truncated) 09:53:24.812 [info] GET /google-cloud-key.json 09:53:24.812 [debug] QUERY OK source="settings" db=0.2ms idle=1113.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:24.812 [debug] QUERY OK source="settings" db=0.0ms idle=1113.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:24.812 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:24.813 [error] #PID<0.188875.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 17) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /google-cloud-key.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 /google-cloud-key (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/google-cloud-key.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188875.0>, params: %{}, path_info: ["google-cloud-key"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/google-cloud-key.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApP74xRSrVVwAP9OC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/google-cloud-key.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /google-cloud-key (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/google-cloud-key.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188875.0>, params: %{}, path_info: ["google-cloud-key"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/google-cloud-key.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalida (truncated) 09:53:25.292 [info] GET /firebase-adminsdk.json 09:53:25.292 [debug] QUERY OK source="settings" db=0.1ms idle=1014.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:25.292 [debug] QUERY OK source="settings" db=0.0ms idle=1014.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:25.292 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:25.293 [error] #PID<0.188876.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 18) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /firebase-adminsdk.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 /firebase-adminsdk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/firebase-adminsdk.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188876.0>, params: %{}, path_info: ["firebase-adminsdk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/firebase-adminsdk.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApRuYDUmcHeoAP9QC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/firebase-adminsdk.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /firebase-adminsdk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/firebase-adminsdk.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188876.0>, params: %{}, path_info: ["firebase-adminsdk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/firebase-adminsdk.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, mus (truncated) 09:53:25.814 [info] GET /firebase-credentials.json 09:53:25.814 [debug] QUERY OK source="settings" db=0.1ms idle=1002.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:25.815 [debug] QUERY OK source="settings" db=0.0ms idle=1002.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:25.815 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:25.815 [error] #PID<0.188877.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 19) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /firebase-credentials.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 /firebase-credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/firebase-credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 19, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188877.0>, params: %{}, path_info: ["firebase-credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/firebase-credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApTq5iqxKcDoAP9SC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/firebase-credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 19, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /firebase-credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/firebase-credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 19, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188877.0>, params: %{}, path_info: ["firebase-credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/firebase-credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-cont (truncated) 09:53:26.517 [info] GET /root/.config/gcloud/application_default_credentials.json 09:53:26.518 [debug] QUERY OK source="settings" db=0.1ms idle=1225.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:26.518 [debug] QUERY OK source="settings" db=0.0ms idle=1225.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:26.518 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:26.518 [error] #PID<0.188878.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 20) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /root/.config/gcloud/application_default_credentials.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 /root/.config/gcloud/application_default_credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/gcloud/application_default_credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 20, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188878.0>, params: %{}, path_info: ["root", ".config", "gcloud", "application_default_credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.config/gcloud/application_default_credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApWSocqDIbasAP9UC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/gcloud/application_default_credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 20, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.config/gcloud/application_default_credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/gcloud/application_default_credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 20, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188878.0>, params: %{}, path_info: ["root", ".config", "gcloud", "application_default_credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, (truncated) 09:53:27.008 [info] GET /root/.config/gcloud/credentials.db 09:53:27.008 [debug] QUERY OK source="settings" db=0.1ms idle=1193.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:27.008 [debug] QUERY OK source="settings" db=0.0ms idle=1193.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:27.009 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:27.009 [error] #PID<0.188879.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 21) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /root/.config/gcloud/credentials.db ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.config/gcloud/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/gcloud/credentials.db", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 21, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188879.0>, params: %{}, path_info: ["root", ".config", "gcloud", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.config/gcloud/credentials.db", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApYHhUg8WCPwAP9WC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/gcloud/credentials.db", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 21, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.config/gcloud/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/gcloud/credentials.db", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 21, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188879.0>, params: %{}, path_info: ["root", ".config", "gcloud", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.config/gcloud/creden (truncated) 09:53:27.484 [info] GET /home/ubuntu/.config/gcloud/application_default_credentials.json 09:53:27.484 [debug] QUERY OK source="settings" db=0.1ms idle=966.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:27.484 [debug] QUERY OK source="settings" db=0.1ms idle=966.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:27.485 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:27.485 [error] #PID<0.188880.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 22) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /home/ubuntu/.config/gcloud/application_default_credentials.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 /home/ubuntu/.config/gcloud/application_default_credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.config/gcloud/application_default_credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 22, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188880.0>, params: %{}, path_info: ["home", "ubuntu", ".config", "gcloud", "application_default_credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/ubuntu/.config/gcloud/application_default_credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApZ5AVqRltoIAP9YC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.config/gcloud/application_default_credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 22, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/ubuntu/.config/gcloud/application_default_credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.config/gcloud/application_default_credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 22, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188880.0>, params: %{}, path_info: ["home", "ubuntu", ".config", "gcloud", "application_default_credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Sa (truncated) 09:53:27.984 [info] GET /home/node/.config/gcloud/application_default_credentials.json 09:53:27.985 [debug] QUERY OK source="settings" db=0.1ms idle=976.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:27.985 [debug] QUERY OK source="settings" db=0.0ms idle=976.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:27.985 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:27.985 [error] #PID<0.188881.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 23) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /home/node/.config/gcloud/application_default_credentials.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 /home/node/.config/gcloud/application_default_credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/node/.config/gcloud/application_default_credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 23, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188881.0>, params: %{}, path_info: ["home", "node", ".config", "gcloud", "application_default_credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/node/.config/gcloud/application_default_credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApbwUeopZ-xkAP9aC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/node/.config/gcloud/application_default_credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 23, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/node/.config/gcloud/application_default_credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/node/.config/gcloud/application_default_credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 23, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188881.0>, params: %{}, path_info: ["home", "node", ".config", "gcloud", "application_default_credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy (truncated) 09:53:28.703 [info] GET /app/credentials.json 09:53:28.703 [debug] QUERY OK source="settings" db=0.1ms idle=718.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:28.704 [debug] QUERY OK source="settings" db=0.0ms idle=718.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:28.704 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:28.704 [error] #PID<0.188882.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 24) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /app/credentials.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 /app/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 24, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188882.0>, params: %{}, path_info: ["app", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/app/credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApeboGzqqZmUAP9cC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 24, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/credentials.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 24, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188882.0>, params: %{}, path_info: ["app", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/app/credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"} (truncated) 09:53:29.267 [info] GET /app/service-account.json 09:53:29.268 [debug] QUERY OK source="settings" db=0.1ms idle=713.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:29.268 [debug] QUERY OK source="settings" db=0.0ms idle=713.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:29.268 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:29.268 [error] #PID<0.188883.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 25) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /app/service-account.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 /app/service-account (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 25, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188883.0>, params: %{}, path_info: ["app", "service-account"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/app/service-account.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApgiNMTBBgSMAP9eC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 25, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app/service-account (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/service-account.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 25, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188883.0>, params: %{}, path_info: ["app", "service-account"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/app/service-account.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control" (truncated) 09:53:29.784 [info] GET /config/gcp.json 09:53:29.785 [debug] QUERY OK source="settings" db=0.1ms idle=1081.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:29.785 [debug] QUERY OK source="settings" db=0.1ms idle=1081.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:29.785 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:29.785 [error] #PID<0.188885.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 26) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config/gcp.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/gcp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/gcp.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 26, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188885.0>, params: %{}, path_info: ["config", "gcp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/gcp.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApidiYyuEHqUAVRsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/gcp.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 26, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/gcp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/gcp.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 26, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188885.0>, params: %{}, path_info: ["config", "gcp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/gcp.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApidiYyuEHqUAVR (truncated) 09:53:30.330 [info] {"source":"oban","duration":607,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:53:30.562 [info] GET /root/.config/hcloud/cli.toml 09:53:30.562 [debug] QUERY OK source="settings" db=0.1ms idle=777.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:30.562 [debug] QUERY OK source="settings" db=0.0ms idle=777.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:30.562 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:30.563 [error] #PID<0.188886.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 27) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /root/.config/hcloud/cli.toml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.config/hcloud/cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/hcloud/cli.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 27, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188886.0>, params: %{}, path_info: ["root", ".config", "hcloud", "cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.config/hcloud/cli.toml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAplW1by8YZaEAP9gC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/hcloud/cli.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 27, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.config/hcloud/cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/hcloud/cli.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 27, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188886.0>, params: %{}, path_info: ["root", ".config", "hcloud", "cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.config/hcloud/cli.toml", resp_body: nil, resp_cookies: %{}, (truncated) 09:53:31.090 [info] GET /home/ubuntu/.config/hcloud/cli.toml 09:53:31.090 [debug] QUERY OK source="settings" db=0.1ms idle=863.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:31.091 [debug] QUERY OK source="settings" db=0.1ms idle=760.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:31.091 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:31.091 [error] #PID<0.188887.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 28) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /home/ubuntu/.config/hcloud/cli.toml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/ubuntu/.config/hcloud/cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.config/hcloud/cli.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 28, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188887.0>, params: %{}, path_info: ["home", "ubuntu", ".config", "hcloud", "cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/ubuntu/.config/hcloud/cli.toml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApnUzqdzjcVsAP9iC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.config/hcloud/cli.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 28, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/ubuntu/.config/hcloud/cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.config/hcloud/cli.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 28, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188887.0>, params: %{}, path_info: ["home", "ubuntu", ".config", "hcloud", "cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/ubuntu/.config (truncated) 09:53:31.568 [info] GET /.hcloud.toml 09:53:31.568 [debug] QUERY OK source="settings" db=0.1ms idle=1005.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:31.568 [debug] QUERY OK source="settings" db=0.0ms idle=1005.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:31.568 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:31.569 [error] #PID<0.188888.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 29) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.hcloud.toml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.hcloud (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.hcloud.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 29, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188888.0>, params: %{}, path_info: [".hcloud"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.hcloud.toml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAppGpvGlS_8wAP9kC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.hcloud.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 29, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.hcloud (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.hcloud.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 29, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188888.0>, params: %{}, path_info: [".hcloud"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.hcloud.toml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAppGpvGlS_8wAP9kC"} ], scheme: (truncated) 09:53:32.013 [info] GET /hcloud.yml 09:53:32.014 [debug] QUERY OK source="settings" db=0.1ms idle=923.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:32.014 [debug] QUERY OK source="settings" db=0.0ms idle=923.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:32.014 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:32.014 [error] #PID<0.188889.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 30) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /hcloud.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /hcloud (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/hcloud.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 30, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188889.0>, params: %{}, path_info: ["hcloud"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/hcloud.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApqw940v3h0EAP9mC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/hcloud.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 30, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /hcloud (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/hcloud.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 30, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188889.0>, params: %{}, path_info: ["hcloud"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/hcloud.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApqw940v3h0EAP9mC"} ], scheme: :http, (truncated) 09:53:32.548 [info] GET /root/.config/linode-cli 09:53:32.549 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:53:32.549 [debug] QUERY OK source="settings" db=0.0ms idle=980.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:32.549 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:32.549 [error] #PID<0.188890.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 31) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /root/.config/linode-cli ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.config/linode-cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/linode-cli", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 31, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188890.0>, params: %{}, path_info: ["root", ".config", "linode-cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.config/linode-cli", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApswdLVUGrPcAP9oC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/linode-cli", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 31, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.config/linode-cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.config/linode-cli", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 31, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188890.0>, params: %{}, path_info: ["root", ".config", "linode-cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.config/linode-cli", resp_body: nil, resp_cookies: %{}, resp_headers: [ (truncated) 09:53:33.332 [info] GET /home/ubuntu/.config/linode-cli 09:53:33.332 [debug] QUERY OK source="settings" db=0.1ms idle=1317.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:33.332 [debug] QUERY OK source="settings" db=0.1ms idle=1101.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:33.332 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:33.333 [error] #PID<0.188891.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 32) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /home/ubuntu/.config/linode-cli ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/ubuntu/.config/linode-cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.config/linode-cli", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 32, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188891.0>, params: %{}, path_info: ["home", "ubuntu", ".config", "linode-cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/ubuntu/.config/linode-cli", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApvrQs9YMkqcAP9qC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.config/linode-cli", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 32, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/ubuntu/.config/linode-cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.config/linode-cli", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 32, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188891.0>, params: %{}, path_info: ["home", "ubuntu", ".config", "linode-cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/ubuntu/.config/linode-cli", resp_bo (truncated) 09:53:33.798 [info] GET /.linode-cli 09:53:33.798 [debug] QUERY OK source="settings" db=0.1ms idle=565.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:33.798 [debug] QUERY OK source="settings" db=0.0ms idle=466.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:33.798 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:33.799 [error] #PID<0.188892.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 33) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.linode-cli ** (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.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.linode-cli", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 33, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188892.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.linode-cli", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApxaV5OtgHRMAP9sC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.linode-cli", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 33, 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.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.linode-cli", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 33, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188892.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.linode-cli", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApxaV5OtgHRMAP9sC"} ], scheme: :http, script_name: [], (truncated) 09:53:34.310 [info] GET /root/.vultr-cli.yaml 09:53:34.311 [debug] QUERY OK source="settings" db=0.1ms idle=756.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:34.311 [debug] QUERY OK source="settings" db=0.0ms idle=756.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:53:34.311 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:34.311 [error] #PID<0.188893.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 34) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /root/.vultr-cli.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 /root/.vultr-cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.vultr-cli.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 34, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188893.0>, params: %{}, path_info: ["root", ".vultr-cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.vultr-cli.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFApzUkXzbwmj8AP9uC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.vultr-cli.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 34, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /root/.vultr-cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/root/.vultr-cli.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 34, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188893.0>, params: %{}, path_info: ["root", ".vultr-cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/root/.vultr-cli.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"} (truncated) 09:53:35.093 [info] GET /home/ubuntu/.vultr-cli.yaml 09:53:35.093 [debug] QUERY OK source="settings" db=0.1ms idle=1294.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:35.093 [debug] QUERY OK source="settings" db=0.0ms idle=1294.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:35.093 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:35.093 [error] #PID<0.188894.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 35) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /home/ubuntu/.vultr-cli.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 /home/ubuntu/.vultr-cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.vultr-cli.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 35, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188894.0>, params: %{}, path_info: ["home", "ubuntu", ".vultr-cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/ubuntu/.vultr-cli.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAp2PFMjNU0vIAP9wC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.vultr-cli.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 35, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /home/ubuntu/.vultr-cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/home/ubuntu/.vultr-cli.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 35, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188894.0>, params: %{}, path_info: ["home", "ubuntu", ".vultr-cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/home/ubuntu/.vultr-cli.yaml", resp_body: nil, resp_cookies: %{}, resp_hea (truncated) 09:53:35.623 [info] GET /.vultr-cli.yaml 09:53:35.624 [debug] QUERY OK source="settings" db=0.1ms idle=530.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:35.624 [debug] QUERY OK source="settings" db=0.0ms idle=530.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:53:35.624 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:53:35.624 [error] #PID<0.188895.0> running PinchflatWeb.Endpoint (connection #PID<0.188858.0>, stream id 36) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.vultr-cli.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 /.vultr-cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vultr-cli.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 36, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188895.0>, params: %{}, path_info: [".vultr-cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.vultr-cli.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAp4NqFY0a6PcAP9yC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vultr-cli.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 36, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vultr-cli (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188858.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vultr-cli.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36030}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)", "via" => "1.1 Caddy", "x-forwarded-for" => "37.187.32.181", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 36, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188895.0>, params: %{}, path_info: [".vultr-cli"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 (Silvy X Ran)"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "37.187.32.181"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.vultr-cli.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFAp4NqFY0a6PcAP9yC"} (truncated) 09:54:00.138 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:54:00.331 [info] {"source":"oban","duration":602,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:54:30.332 [info] {"source":"oban","duration":728,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:55:00.139 [info] {"source":"oban","duration":138,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:55:00.333 [info] {"source":"oban","duration":576,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:55:30.333 [info] {"source":"oban","duration":519,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:56:00.140 [info] {"source":"oban","duration":167,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:56:00.335 [info] {"source":"oban","duration":626,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:56:02.784 [info] GET / 09:56:02.784 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 09:56:02.785 [debug] QUERY OK source="settings" db=0.1ms idle=1230.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:56:02.785 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1230.6ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 09:56:02.785 [debug] QUERY OK source="sources" db=0.0ms idle=1230.7ms SELECT count(s0."id") FROM "sources" AS s0 [] 09:56:02.788 [debug] QUERY OK source="media_items" db=3.0ms idle=1230.9ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:56:02.789 [debug] QUERY OK source="media_items" db=0.8ms idle=384.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:56:02.789 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:02.789 [debug] QUERY OK source="settings" db=0.0ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:02.790 [debug] QUERY OK source="settings" db=0.0ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:56:02.790 [debug] QUERY OK source="tasks" db=0.1ms idle=2.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 09:56:02.791 [debug] QUERY OK source="media_items" db=0.8ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:56:02.792 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 09:56:02.792 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 09:56:02.798 [debug] QUERY OK source="media_items" db=5.0ms 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 (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 09:56:02.799 [debug] QUERY OK source="media_items" db=0.5ms idle=8.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] 09:56:02.799 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 09:56:02.801 [info] Sent 200 in 16ms 09:56:30.336 [info] {"source":"oban","duration":604,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:57:00.141 [info] {"source":"oban","duration":250,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:57:00.337 [info] {"source":"oban","duration":597,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:57:30.338 [info] {"source":"oban","duration":606,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:58:00.142 [info] {"source":"oban","duration":148,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:58:00.339 [info] {"source":"oban","duration":601,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:58:05.642 [info] GET / 09:58:05.642 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 09:58:05.642 [debug] QUERY OK source="settings" db=0.0ms idle=87.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:05.642 [debug] QUERY OK source="media_profiles" db=0.0ms idle=88.1ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 09:58:05.643 [debug] QUERY OK source="sources" db=0.0ms idle=88.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 09:58:05.646 [debug] QUERY OK source="media_items" db=2.9ms idle=88.4ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:58:05.647 [debug] QUERY OK source="media_items" db=1.1ms idle=90.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:58:05.647 [debug] QUERY OK source="settings" db=0.1ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:05.647 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:05.648 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:05.648 [debug] QUERY OK source="tasks" db=0.1ms 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"] 09:58:05.649 [debug] QUERY OK source="media_items" db=0.6ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:58:05.649 [debug] QUERY OK source="media_items" db=0.2ms idle=1.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 09:58:05.650 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 09:58:05.656 [debug] QUERY OK source="media_items" db=4.8ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 09:58:05.657 [debug] QUERY OK source="media_items" db=0.5ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 09:58:05.657 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 09:58:05.658 [info] Sent 200 in 16ms 09:58:10.304 [info] GET /zz-nonexistent-test-8492.html 09:58:10.305 [debug] QUERY OK source="settings" db=0.1ms idle=750.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:10.305 [debug] QUERY OK source="settings" db=0.0ms idle=750.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:10.305 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:10.305 [error] #PID<0.188925.0> running PinchflatWeb.Endpoint (connection #PID<0.188923.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /zz-nonexistent-test-8492.html ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /zz-nonexistent-test-8492 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188923.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/zz-nonexistent-test-8492.html", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 59520}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188925.0>, params: %{}, path_info: ["zz-nonexistent-test-8492"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/zz-nonexistent-test-8492.html", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA53erqqK65iEAP-QC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188923.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/zz-nonexistent-test-8492.html", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 59520}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /zz-nonexistent-test-8492 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188923.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/zz-nonexistent-test-8492.html", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 59520}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188925.0>, params: %{}, path_info: ["zz-nonexistent-test-8492"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", " (truncated) 09:58:15.166 [info] GET /.env 09:58:15.167 [debug] QUERY OK source="settings" db=0.1ms idle=1612.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:15.167 [debug] QUERY OK source="settings" db=0.0ms idle=1612.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:15.167 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:15.167 [error] #PID<0.188926.0> running PinchflatWeb.Endpoint (connection #PID<0.188923.0>, stream id 3) terminated Server: pinchflat.econ.llc: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.188923.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 59520}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188926.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6Jl11LERpD0AP-SC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188923.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 59520}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188923.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 59520}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188926.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"ho (truncated) 09:58:15.391 [info] GET /.git/HEAD 09:58:15.391 [debug] QUERY OK source="settings" db=0.1ms idle=1836.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:15.391 [debug] QUERY OK source="settings" db=0.0ms idle=1826.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:15.391 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:15.392 [error] #PID<0.188927.0> running PinchflatWeb.Endpoint (connection #PID<0.188923.0>, stream id 4) terminated Server: pinchflat.econ.llc: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.188923.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 59520}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188927.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/HEAD", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6KbWDOYJHLgAVSIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188923.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 59520}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/HEAD (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188923.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 59520}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188927.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, (truncated) 09:58:21.324 [info] GET /config.env 09:58:21.325 [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 [] 09:58:21.325 [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 [] 09:58:21.325 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:21.325 [error] #PID<0.188931.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config.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 /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188931.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6giGDrjSXr0AP-UC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", (truncated) 09:58:21.337 [info] GET /.env.production 09:58:21.337 [debug] QUERY OK source="settings" db=0.0ms idle=783.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:21.338 [debug] QUERY OK source="settings" db=0.0ms idle=783.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:21.338 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:21.338 [error] #PID<0.188932.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.production ** (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.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188932.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.production", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6glGnWgoJD0AP-WC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", (truncated) 09:58:21.461 [info] GET /.aws/credentials 09:58:21.461 [debug] QUERY OK source="settings" db=0.2ms idle=889.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:21.462 [debug] QUERY OK source="settings" db=0.0ms idle=136.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:21.462 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:21.462 [error] #PID<0.188933.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.aws/credentials ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188933.0>, params: %{}, path_info: [".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.aws/credentials", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6hCmkBs-pqEAP-YC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-i (truncated) 09:58:21.502 [info] GET /app/.env 09:58:21.502 [debug] QUERY OK source="settings" db=0.1ms idle=176.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:21.502 [debug] QUERY OK source="settings" db=0.0ms idle=164.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:21.503 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:21.503 [error] #PID<0.188934.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /app/.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 /app/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188934.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/app/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6hMacJo0HtIAP-aC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windo (truncated) 09:58:21.761 [info] GET /.DS_Store 09:58:21.761 [debug] QUERY OK source="settings" db=0.1ms idle=299.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:21.762 [debug] QUERY OK source="settings" db=0.1ms idle=299.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:21.762 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:21.762 [error] #PID<0.188935.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.DS_Store ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.DS_Store", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188935.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.DS_Store", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6iKH7OHmp2gAP-cC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.DS_Store", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.DS_Store", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0 (truncated) 09:58:21.879 [info] GET /.git/config 09:58:21.879 [debug] QUERY OK source="settings" db=0.1ms idle=376.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:21.880 [debug] QUERY OK source="settings" db=0.0ms idle=377.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:21.880 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:21.880 [error] #PID<0.188936.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.git/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188936.0>, params: %{}, path_info: [".git", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6imTwRrgsAcAP-eC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", (truncated) 09:58:21.887 [info] GET /.git/HEAD 09:58:21.887 [debug] QUERY OK source="settings" db=0.0ms idle=314.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:21.887 [debug] QUERY OK source="settings" db=0.0ms idle=125.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:21.887 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:21.887 [error] #PID<0.188937.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 7) terminated Server: pinchflat.econ.llc: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.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188937.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/HEAD", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6ioH2DjfCZQAP-gC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/HEAD (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_b (truncated) 09:58:22.326 [info] GET /./.env 09:58:22.327 [debug] QUERY OK source="settings" db=0.2ms idle=565.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:22.327 [debug] QUERY OK source="settings" db=0.0ms idle=447.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:22.327 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:22.327 [error] #PID<0.188938.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 8) terminated Server: pinchflat.econ.llc: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.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/./.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188938.0>, params: %{}, path_info: [".", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/./.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6kQ9qNHBlqsAP-iC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/./.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /./ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/./.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", (truncated) 09:58:26.212 [info] GET /.env 09:58:26.213 [debug] QUERY OK source="settings" db=0.1ms idle=658.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:26.213 [debug] QUERY OK source="settings" db=0.0ms idle=658.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:26.213 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:26.213 [error] #PID<0.188939.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 9) terminated Server: pinchflat.econ.llc: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.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188939.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6yvaaCcFnz0AVSMB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188939.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", " (truncated) 09:58:26.308 [info] GET /api/.env 09:58:26.308 [debug] QUERY OK source="settings" db=0.1ms idle=753.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:26.308 [debug] QUERY OK source="settings" db=0.0ms idle=753.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:26.308 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:26.309 [error] #PID<0.188940.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 10) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/.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 /api/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188940.0>, params: %{}, path_info: ["api", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA6zGJc3POynIAVSOB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188940.0>, params: %{}, path_info: ["api", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb. (truncated) 09:58:27.160 [info] GET /.env.swp 09:58:27.160 [debug] QUERY OK source="settings" db=0.1ms idle=947.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:27.160 [debug] QUERY OK source="settings" db=0.1ms idle=947.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:27.160 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:27.161 [error] #PID<0.188941.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 11) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.swp ** (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.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.swp", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188941.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.swp", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA62RTRInIpsgAP-kC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.swp", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.swp", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" (truncated) 09:58:27.190 [info] GET /.env.bak 09:58:27.191 [debug] QUERY OK source="settings" db=0.1ms idle=882.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:27.191 [debug] QUERY OK source="settings" db=0.0ms idle=882.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:27.191 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:27.191 [error] #PID<0.188942.0> running PinchflatWeb.Endpoint (connection #PID<0.188930.0>, stream id 12) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.bak ** (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.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.bak", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188942.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.bak", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA62YnFFeHSKoAP-mC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.bak", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188930.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.bak", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 36308}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" (truncated) 09:58:30.340 [info] {"source":"oban","duration":551,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:58:34.665 [info] GET /sources/1/media/102094 09:58:34.665 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "102094", "source_id" => "1"} Pipelines: [:browser] 09:58:34.665 [debug] QUERY OK source="media_items" db=0.1ms idle=1076.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" = ?) [102094] 09:58:34.665 [debug] QUERY OK source="tasks" db=0.1ms idle=111.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" [102094] 09:58:34.666 [debug] QUERY OK source="sources" db=0.2ms idle=111.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:58:34.667 [debug] QUERY OK source="oban_jobs" db=1.4ms idle=111.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" = ?) [14189] 09:58:34.668 [debug] QUERY OK source="settings" db=0.1ms idle=77.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:34.668 [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 [] 09:58:34.668 [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 [] 09:58:34.669 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:58:34.681 [info] Sent 200 in 16ms 09:58:34.810 [info] GET /media_profiles 09:58:34.810 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 09:58:34.811 [debug] QUERY OK source="media_profiles" db=0.2ms idle=143.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 09:58:34.811 [debug] QUERY OK source="settings" db=0.0ms idle=143.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:34.811 [debug] QUERY OK source="settings" db=0.1ms idle=143.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:34.812 [debug] QUERY OK source="settings" db=0.0ms idle=143.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:34.812 [info] Sent 200 in 1ms 09:58:34.831 [info] GET /settings 09:58:34.831 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 09:58:34.831 [debug] QUERY OK source="settings" db=0.1ms idle=162.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:34.831 [debug] QUERY OK source="settings" db=0.1ms idle=20.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:34.832 [debug] QUERY OK source="settings" db=0.0ms idle=20.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:34.832 [debug] QUERY OK source="settings" db=0.0ms idle=20.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:34.833 [info] Sent 200 in 2ms 09:58:36.504 [info] GET /config/prod.exs 09:58:36.505 [info] GET /config/dev.exs 09:58:36.505 [info] GET /config/config.exs 09:58:36.505 [info] GET /config/runtime.exs 09:58:36.505 [debug] QUERY OK source="settings" db=0.5ms idle=1673.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:36.505 [info] GET /mix.exs 09:58:36.505 [debug] QUERY OK source="settings" db=0.2ms idle=1673.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:36.505 [debug] QUERY OK source="settings" db=0.1ms idle=1673.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:36.506 [debug] QUERY OK source="settings" db=0.2ms idle=1673.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:36.506 [debug] QUERY OK source="settings" db=0.6ms 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 [] 09:58:36.506 [debug] QUERY OK source="settings" db=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 [] 09:58:36.506 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:36.506 [debug] QUERY OK source="settings" db=0.8ms idle=914.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:36.506 [debug] QUERY OK source="settings" db=0.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 [] 09:58:36.506 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:36.506 [debug] QUERY OK source="settings" db=0.7ms 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 [] 09:58:36.507 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:36.506 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:36.506 [debug] QUERY OK source="settings" db=0.8ms 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 [] 09:58:36.507 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:36.507 [error] #PID<0.188955.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config/config.exs ** (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/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/config.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188955.0>, params: %{}, path_info: ["config", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/config.exs", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7ZFY2qYLyrkAVSUB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/config.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/config.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: (truncated) 09:58:36.507 [error] #PID<0.188958.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /mix.exs ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /mix (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/mix.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188958.0>, params: %{}, path_info: ["mix"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/mix.exs", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7ZFd4IQlFGMAP-2C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/mix.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /mix (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/mix.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", (truncated) 09:58:36.507 [error] #PID<0.188954.0> running PinchflatWeb.Endpoint (connection #PID<0.188951.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config/dev.exs ** (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/dev (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/dev.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188954.0>, params: %{}, path_info: ["config", "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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/dev.exs", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7ZFYZEJ8DT8AP-0C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/dev.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/dev (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/dev.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188954.0>, params: %{}, path_info: ["config", "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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,e (truncated) 09:58:36.507 [error] #PID<0.188950.0> running PinchflatWeb.Endpoint (connection #PID<0.188943.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config/prod.exs ** (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/prod (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/prod.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188950.0>, params: %{}, path_info: ["config", "prod"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/prod.exs", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7ZFOm1jtoEoAP-yC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/prod.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/prod (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/prod.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => (truncated) 09:58:36.507 [error] #PID<0.188956.0> running PinchflatWeb.Endpoint (connection #PID<0.188952.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config/runtime.exs ** (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/runtime (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/runtime.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188956.0>, params: %{}, path_info: ["config", "runtime"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/runtime.exs", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7ZFaVgPxtewAVSWB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/runtime.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/runtime (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/runtime.exs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", (truncated) 09:58:37.356 [info] GET /mix.lock 09:58:37.356 [debug] QUERY OK source="settings" db=0.1ms idle=849.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:37.357 [debug] QUERY OK source="settings" db=0.0ms idle=850.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:37.357 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.357 [error] #PID<0.188959.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /mix.lock ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /mix (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/mix.lock", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188959.0>, params: %{}, path_info: ["mix"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/mix.lock", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7cQSWX9GkYcAP-4C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/mix.lock", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /mix (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/mix.lock", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188959.0>, params: %{}, path_info: ["mix"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], (truncated) 09:58:37.912 [info] GET /.ssh/id_ed25519 09:58:37.912 [info] GET /.ssh/id_ecdsa 09:58:37.912 [debug] QUERY OK source="settings" db=0.1ms idle=555.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:37.913 [debug] QUERY OK source="settings" db=0.0ms idle=555.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:37.913 [debug] QUERY OK source="settings" db=0.0ms idle=358.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:37.913 [debug] QUERY OK source="settings" db=0.0ms idle=358.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:37.913 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.913 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.913 [info] GET /id_rsa 09:58:37.913 [debug] QUERY OK source="settings" db=0.0ms idle=319.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:37.913 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.914 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.913 [error] #PID<0.188960.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.ssh/id_ed25519 ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.ssh/id_ed25519 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.ssh/id_ed25519", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188960.0>, params: %{}, path_info: [".ssh", "id_ed25519"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.ssh/id_ed25519", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eU3k53DQ6YAP-6C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.ssh/id_ed25519", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.ssh/id_ed25519 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.ssh/id_ed25519", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarde (truncated) 09:58:37.913 [error] #PID<0.188961.0> running PinchflatWeb.Endpoint (connection #PID<0.188951.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.ssh/id_ecdsa ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.ssh/id_ecdsa (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.ssh/id_ecdsa", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188961.0>, params: %{}, path_info: [".ssh", "id_ecdsa"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.ssh/id_ecdsa", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eU7-d11R9oAP-8C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.ssh/id_ecdsa", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.ssh/id_ecdsa (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.ssh/id_ecdsa", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, (truncated) 09:58:37.915 [info] GET /id_ed25519 09:58:37.915 [info] GET /private_key.pem 09:58:37.915 [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 [] 09:58:37.915 [info] GET /server.pem 09:58:37.915 [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 [] 09:58:37.915 [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 [] 09:58:37.916 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.916 [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 [] 09:58:37.916 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.916 [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 [] 09:58:37.914 [error] #PID<0.188962.0> running PinchflatWeb.Endpoint (connection #PID<0.188952.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /id_rsa ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /id_rsa (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/id_rsa", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188962.0>, params: %{}, path_info: ["id_rsa"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/id_rsa", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eVILHY1NIsAKa0D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/id_rsa", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /id_rsa (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/id_rsa", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy (truncated) 09:58:37.916 [info] GET /private.key 09:58:37.916 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:37.916 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.916 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:37.916 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.917 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.916 [error] #PID<0.188963.0> running PinchflatWeb.Endpoint (connection #PID<0.188951.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /id_ed25519 ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /id_ed25519 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/id_ed25519", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188963.0>, params: %{}, path_info: ["id_ed25519"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/id_ed25519", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eVloX1Xaw8AKa2D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/id_ed25519", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /id_ed25519 (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/id_ed25519", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188963.0>, params: %{}, path_info: ["id_ed25519"], path_params: %{}, port: 80, private: %{ (truncated) 09:58:37.918 [info] GET /localhost.key 09:58:37.916 [error] #PID<0.188964.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /private_key.pem ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /private_key (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/private_key.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188964.0>, params: %{}, path_info: ["private_key"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/private_key.pem", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eVnvtvDcM8AP--C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/private_key.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /private_key (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/private_key.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pin (truncated) 09:58:37.918 [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 [] 09:58:37.918 [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 [] 09:58:37.918 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.916 [error] #PID<0.188965.0> running PinchflatWeb.Endpoint (connection #PID<0.188943.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /server.pem ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188965.0>, params: %{}, path_info: ["server"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/server.pem", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eVsAC4ZhGEAP_AC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188965.0>, params: %{}, path_info: ["server"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat (truncated) 09:58:37.917 [error] #PID<0.188966.0> running PinchflatWeb.Endpoint (connection #PID<0.188952.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /private.key ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /private (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/private.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188966.0>, params: %{}, path_info: ["private"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/private.key", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eV1k1_5yLEAVSYB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/private.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /private (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/private.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" = (truncated) 09:58:37.918 [info] GET /certs/private.key 09:58:37.918 [info] GET /ssl/private.key 09:58:37.919 [info] GET /.pem 09:58:37.919 [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 [] 09:58:37.919 [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 [] 09:58:37.919 [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 [] 09:58:37.919 [debug] QUERY OK source="settings" db=0.1ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.919 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.919 [debug] QUERY OK source="settings" db=0.1ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.919 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.919 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:58:37.919 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.918 [error] #PID<0.188967.0> running PinchflatWeb.Endpoint (connection #PID<0.188951.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /localhost.key ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /localhost (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/localhost.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188967.0>, params: %{}, path_info: ["localhost"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/localhost.key", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eWNLhWagS8AP_CC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/localhost.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /localhost (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/localhost.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari (truncated) 09:58:37.920 [info] GET /key.pem 09:58:37.919 [error] #PID<0.188969.0> running PinchflatWeb.Endpoint (connection #PID<0.188952.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /certs/private.key ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /certs/private (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/certs/private.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188969.0>, params: %{}, path_info: ["certs", "private"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/certs/private.key", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eWZ0UsYdqcAAEqE"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/certs/private.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /certs/private (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/certs/private.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insec (truncated) 09:58:37.920 [error] #PID<0.188970.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.pem ** (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.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188970.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.pem", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eWd5FbMUIwAKa4D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host (truncated) 09:58:37.921 [info] GET /privkey.pem 09:58:37.919 [error] #PID<0.188968.0> running PinchflatWeb.Endpoint (connection #PID<0.188943.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /ssl/private.key ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ssl/private (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ssl/private.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188968.0>, params: %{}, path_info: ["ssl", "private"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/ssl/private.key", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eWZ1Nu88rQAVSaB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ssl/private.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /ssl/private (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/ssl/private.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => " (truncated) 09:58:37.921 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:37.921 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.921 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.922 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.922 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.922 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.922 [error] #PID<0.188971.0> running PinchflatWeb.Endpoint (connection #PID<0.188951.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /key.pem ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /key (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/key.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188971.0>, params: %{}, path_info: ["key"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/key.pem", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eW0a5zG6pMAAEsE"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/key.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /key (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/key.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188971.0>, params: %{}, path_info: ["key"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {" (truncated) 09:58:37.922 [error] #PID<0.188972.0> running PinchflatWeb.Endpoint (connection #PID<0.188952.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /privkey.pem ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /privkey (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/privkey.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188972.0>, params: %{}, path_info: ["privkey"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/privkey.pem", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eXDZMIciK0AVScB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/privkey.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /privkey (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/privkey.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", (truncated) 09:58:37.927 [info] GET /server.key 09:58:37.927 [debug] QUERY OK source="settings" db=0.0ms idle=7.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.927 [debug] QUERY OK source="settings" db=0.0ms idle=5.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.927 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.927 [error] #PID<0.188973.0> running PinchflatWeb.Endpoint (connection #PID<0.188952.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /server.key ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188973.0>, params: %{}, path_info: ["server"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/server.key", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eYZHF0hrkgAP_EC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: fa (truncated) 09:58:37.937 [info] GET /configuration.php.bak 09:58:37.937 [info] GET /fullchain.pem 09:58:37.937 [info] GET /.ssh/id_rsa 09:58:37.937 [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 [] 09:58:37.937 [info] GET /.git/logs/HEAD 09:58:37.937 [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 [] 09:58:37.937 [info] GET /localhost.pem 09:58:37.937 [debug] QUERY OK source="settings" db=0.2ms idle=15.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.938 [debug] QUERY OK source="settings" db=0.2ms idle=10.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.938 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.938 [debug] QUERY OK source="settings" db=0.3ms idle=10.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.938 [debug] QUERY OK source="settings" db=0.3ms 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 [] 09:58:37.938 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.938 [debug] QUERY OK source="settings" db=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 [] 09:58:37.938 [debug] QUERY OK source="settings" db=0.3ms idle=0.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:37.938 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.938 [debug] QUERY OK source="settings" db=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 [] 09:58:37.938 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.938 [debug] QUERY OK source="settings" db=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 [] 09:58:37.938 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:37.938 [error] #PID<0.188974.0> running PinchflatWeb.Endpoint (connection #PID<0.188952.0>, stream id 7) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /configuration.php.bak ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /configuration.php (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/configuration.php.bak", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188974.0>, params: %{}, path_info: ["configuration.php"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/configuration.php.bak", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7eaz9zZJcVwAP_GC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/configuration.php.bak", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /configuration.php (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188952.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/configuration.php.bak", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34804}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188974.0>, params: %{}, path_info: ["configura (truncated) 09:58:37.938 [error] #PID<0.188975.0> running PinchflatWeb.Endpoint (connection #PID<0.188951.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /fullchain.pem ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /fullchain (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/fullchain.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188975.0>, params: %{}, path_info: ["fullchain"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/fullchain.pem", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7ea0SkKao_AAADuF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/fullchain.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /fullchain (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/fullchain.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34808}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188975.0>, params: %{}, path_info: ["fullchain"], path_params: %{}, port: 80, pr (truncated) 09:58:37.938 [error] #PID<0.188977.0> running PinchflatWeb.Endpoint (connection #PID<0.188943.0>, stream id 7) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.git/logs/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/logs/HEAD (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/logs/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188977.0>, params: %{}, path_info: [".git", "logs", "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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/logs/HEAD", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7ea4-iOu4YgAKa6D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/logs/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/logs/HEAD (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/logs/HEAD", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-reque (truncated) 09:58:37.938 [error] #PID<0.188976.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.ssh/id_rsa ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.ssh/id_rsa (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.ssh/id_rsa", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188976.0>, params: %{}, path_info: [".ssh", "id_rsa"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.ssh/id_rsa", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7ea2_SK3aHAAADwF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.ssh/id_rsa", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.ssh/id_rsa (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.ssh/id_rsa", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", (truncated) 09:58:37.939 [error] #PID<0.188978.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /localhost.pem ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /localhost (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/localhost.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188978.0>, params: %{}, path_info: ["localhost"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/localhost.pem", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7ea7cRgJeP4AKa8D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/localhost.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /localhost (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/localhost.pem", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188978.0>, params: %{}, path_info: ["localhost"], path_params: %{}, port: 80, pr (truncated) 09:58:38.359 [info] GET /.git/packed-refs 09:58:38.360 [debug] QUERY OK source="settings" db=0.1ms idle=421.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.360 [debug] QUERY OK source="settings" db=0.0ms idle=422.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.360 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.360 [error] #PID<0.188979.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.git/packed-refs ** (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/packed-refs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/packed-refs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188979.0>, params: %{}, path_info: [".git", "packed-refs"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/packed-refs", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7f_jk02h_icAKa-D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/packed-refs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/packed-refs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/packed-refs", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x- (truncated) 09:58:38.383 [info] GET /.env.old 09:58:38.384 [debug] QUERY OK source="settings" db=0.1ms idle=445.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.384 [info] GET /.env.dev 09:58:38.384 [debug] QUERY OK source="settings" db=0.0ms idle=445.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.384 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.384 [debug] QUERY OK source="settings" db=0.1ms idle=445.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.384 [debug] QUERY OK source="settings" db=0.1ms idle=24.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.384 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.384 [error] #PID<0.188980.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.old ** (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.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.old", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188980.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.old", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gFRclrHf8cAKbAD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.old", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.old", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188980.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => (truncated) 09:58:38.386 [info] GET /.git/index 09:58:38.386 [debug] QUERY OK source="settings" db=0.3ms idle=25.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.387 [debug] QUERY OK source="settings" db=0.0ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.385 [error] #PID<0.188981.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 7) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.dev ** (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.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dev", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188981.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.dev", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gFXuuTqgmAAADyF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dev", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dev", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows (truncated) 09:58:38.387 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.387 [info] GET /.env.staging 09:58:38.387 [debug] QUERY OK source="settings" db=0.0ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.387 [debug] QUERY OK source="settings" db=0.0ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.387 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.387 [error] #PID<0.188982.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.git/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 /.git/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/index", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188982.0>, params: %{}, path_info: [".git", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.git/index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gF23XUqc3UAVSeB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/index", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/index", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", (truncated) 09:58:38.387 [error] #PID<0.188983.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 8) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.staging ** (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.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.staging", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188983.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.staging", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gGFGGm_zhkAVSgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.staging", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.staging", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x- (truncated) 09:58:38.389 [info] GET /.env.example 09:58:38.390 [debug] QUERY OK source="settings" db=0.0ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.390 [debug] QUERY OK source="settings" db=0.0ms idle=3.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.390 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.390 [error] #PID<0.188984.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 9) terminated Server: pinchflat.econ.llc: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.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188984.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.example", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gGr7SxYUfUAKbCD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body (truncated) 09:58:38.398 [info] GET /.env.backup 09:58:38.398 [debug] QUERY OK source="settings" db=0.1ms idle=11.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.398 [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 [] 09:58:38.398 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.399 [info] GET /config/.env 09:58:38.399 [debug] QUERY OK source="settings" db=0.1ms idle=11.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.399 [debug] QUERY OK source="settings" db=0.0ms idle=9.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.399 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.399 [error] #PID<0.188985.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 10) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.backup ** (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.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.backup", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188985.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.backup", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gIrjHaNG34AVSiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.backup", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, 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.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.backup", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", (truncated) 09:58:38.400 [info] GET /server/.env 09:58:38.401 [debug] QUERY OK source="settings" db=0.1ms idle=10.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.401 [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 [] 09:58:38.401 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.399 [error] #PID<0.188986.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config/.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 /config/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188986.0>, params: %{}, path_info: ["config", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gI4ecunOYYAAD0F"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", (truncated) 09:58:38.401 [info] GET /src/.env 09:58:38.402 [info] GET /web/.env 09:58:38.402 [debug] QUERY OK source="settings" db=0.0ms idle=3.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.402 [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 [] 09:58:38.402 [debug] QUERY OK source="settings" db=0.0ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.402 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.402 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.402 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.401 [error] #PID<0.188987.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 11) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /server/.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 /server/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188987.0>, params: %{}, path_info: ["server", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/server/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gJTL7RQEokAKbED"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188987.0>, params: %{}, path_info: ["server", ""], path_params: %{}, port: 80, private: % (truncated) 09:58:38.403 [info] GET /public/.env 09:58:38.403 [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 [] 09:58:38.404 [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 [] 09:58:38.404 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.402 [error] #PID<0.188988.0> running PinchflatWeb.Endpoint (connection #PID<0.188943.0>, stream id 8) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /src/.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 /src/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/src/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188988.0>, params: %{}, path_info: ["src", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/src/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gJjOpnIJuwAP_IC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/src/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /src/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188943.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/src/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34796}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, (truncated) 09:58:38.402 [error] #PID<0.188989.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 7) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /web/.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 /web/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/web/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188989.0>, params: %{}, path_info: ["web", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/web/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gJl6q1YvAcAVSkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/web/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /web/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/web/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windo (truncated) 09:58:38.404 [error] #PID<0.188990.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 12) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /public/.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 /public/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/public/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188990.0>, params: %{}, path_info: ["public", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/public/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gJ8eIFd1YAAP_KC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/public/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /public/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/public/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", (truncated) 09:58:38.431 [info] GET /build/.env 09:58:38.431 [debug] QUERY OK source="settings" db=0.1ms idle=29.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.431 [debug] QUERY OK source="settings" db=0.0ms idle=29.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.431 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.432 [error] #PID<0.188991.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 13) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /build/.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 /build/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/build/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188991.0>, params: %{}, path_info: ["build", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/build/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gQkEygiUycAP_MC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/build/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /build/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/build/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", (truncated) 09:58:38.441 [info] GET /deploy/.env 09:58:38.441 [debug] QUERY OK source="settings" db=0.0ms idle=39.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.442 [debug] QUERY OK source="settings" db=0.0ms idle=38.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.442 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.442 [error] #PID<0.188992.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 14) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /deploy/.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 /deploy/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/deploy/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188992.0>, params: %{}, path_info: ["deploy", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/deploy/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gTA5CKdq2YAP_OC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/deploy/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /deploy/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/deploy/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188992.0>, params: %{}, path_info: ["deploy", ""], path_params: %{}, port: 80, private: % (truncated) 09:58:38.452 [info] GET /.env.prod 09:58:38.452 [info] GET /services/.env 09:58:38.452 [debug] QUERY OK source="settings" db=0.1ms idle=48.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.452 [debug] QUERY OK source="settings" db=0.1ms idle=20.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.452 [debug] QUERY OK source="settings" db=0.1ms idle=20.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.452 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.452 [debug] QUERY OK source="settings" db=0.1ms idle=10.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.452 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.452 [error] #PID<0.188993.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 15) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.prod ** (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.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.prod", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188993.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.prod", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gVhlH5YIpIAVSmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.prod", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.prod", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188993.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc (truncated) 09:58:38.453 [error] #PID<0.188994.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 8) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /services/.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 /services/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/services/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188994.0>, params: %{}, path_info: ["services", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/services/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gVlBIeozJMAKbGD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/services/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /services/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/services/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", (truncated) 09:58:38.542 [info] GET /core/.env 09:58:38.543 [debug] QUERY OK source="settings" db=0.1ms idle=101.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.543 [debug] QUERY OK source="settings" db=0.1ms idle=91.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.543 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.543 [error] #PID<0.188995.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 9) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /core/.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 /core/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/core/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188995.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/core/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7grMIz4ivjwAVSoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/core/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /core/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/core/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188995.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.ec (truncated) 09:58:38.552 [info] GET /dist/.env 09:58:38.552 [debug] QUERY OK source="settings" db=0.0ms idle=99.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.552 [debug] QUERY OK source="settings" db=0.0ms idle=99.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.552 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.553 [error] #PID<0.188996.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 10) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /dist/.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 /dist/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dist/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188996.0>, params: %{}, path_info: ["dist", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/dist/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7gtaXQDelS8AKbID"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dist/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /dist/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dist/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwar (truncated) 09:58:38.817 [info] GET /.env.docker 09:58:38.817 [debug] QUERY OK source="settings" db=0.1ms idle=274.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.818 [debug] QUERY OK source="settings" db=0.0ms idle=274.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.818 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.819 [info] GET /.env.production.local 09:58:38.818 [error] #PID<0.188997.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 11) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.docker ** (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.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.docker", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188997.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.docker", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7hspq0SEuA0AKbKD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.docker", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.docker", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: (truncated) 09:58:38.820 [info] GET /.env.dev.local 09:58:38.820 [debug] QUERY OK source="settings" db=0.0ms idle=267.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.820 [debug] QUERY OK source="settings" db=0.0ms idle=267.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.820 [debug] QUERY OK source="settings" db=0.1ms idle=223.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.820 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.820 [debug] QUERY OK source="settings" db=0.0ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.820 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.820 [error] #PID<0.188999.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 12) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.dev.local ** (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.dev (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dev.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188999.0>, params: %{}, path_info: [".env.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.dev.local", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7htPL357VxMAKbMD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dev.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env.dev (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dev.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 S (truncated) 09:58:38.820 [error] #PID<0.188998.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 16) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.production.local ** (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.production (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188998.0>, params: %{}, path_info: [".env.production"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.production.local", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7htLpPFuKUUAP_QC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env.production (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.188998.0>, params: %{}, path_info: [".env.produc (truncated) 09:58:38.845 [info] GET /.env.stage 09:58:38.845 [debug] QUERY OK source="settings" db=0.1ms idle=27.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.845 [debug] QUERY OK source="settings" db=0.0ms idle=25.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.845 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.846 [error] #PID<0.189000.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 13) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.stage ** (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.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.stage", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189000.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.stage", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7hzQrSN74T4AKbOD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.stage", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.stage", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/ (truncated) 09:58:38.847 [info] GET /.env.live 09:58:38.848 [debug] QUERY OK source="settings" db=0.1ms idle=27.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.848 [debug] QUERY OK source="settings" db=0.1ms idle=28.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.848 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.848 [error] #PID<0.189001.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 14) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.live ** (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.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.live", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189001.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.live", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7hz5KIEAlJ8AKbQD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.live", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.live", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-pr (truncated) 09:58:38.851 [info] GET /.env_1 09:58:38.852 [debug] QUERY OK source="settings" db=0.1ms idle=31.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.852 [debug] QUERY OK source="settings" db=0.0ms idle=6.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.852 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.852 [error] #PID<0.189002.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 15) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env_1 ** (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.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env_1", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189002.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env_1", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7h016vjWW5UAVSqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env_1", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env_1", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, (truncated) 09:58:38.861 [info] GET /api/shared/config.env 09:58:38.861 [info] GET /api/shared/.env 09:58:38.861 [debug] QUERY OK source="settings" db=0.2ms idle=15.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.861 [debug] QUERY OK source="settings" db=0.1ms idle=13.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.861 [debug] QUERY OK source="settings" db=0.2ms idle=13.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.861 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.862 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:58:38.862 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.862 [error] #PID<0.189003.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 16) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/shared/config.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 /api/shared/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189003.0>, params: %{}, path_info: ["api", "shared", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/shared/config.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7h3DRWdXFLsAVSsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/shared/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; W (truncated) 09:58:38.862 [error] #PID<0.189004.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 17) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/shared/.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 /api/shared/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189004.0>, params: %{}, path_info: ["api", "shared", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/shared/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7h3GnIFUDS8AVSuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/shared/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189004.0>, params: %{}, path_info: ["api", "shared", ""], path_params: %{} (truncated) 09:58:38.868 [info] GET /aws/credentials 09:58:38.869 [debug] QUERY OK source="settings" db=0.1ms idle=16.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.869 [debug] QUERY OK source="settings" db=0.1ms idle=7.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.869 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.869 [error] #PID<0.189005.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 18) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /aws/credentials ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189005.0>, params: %{}, path_info: ["aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/aws/credentials", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7h412OXDdZMAVSwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aws/credentials", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecu (truncated) 09:58:38.876 [info] GET /functions/.runtimeconfig.json 09:58:38.876 [debug] QUERY OK source="settings" db=0.1ms idle=15.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.877 [debug] QUERY OK source="settings" db=0.0ms idle=15.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.877 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.877 [error] #PID<0.189006.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 19) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /functions/.runtimeconfig.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 /functions/.runtimeconfig (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/functions/.runtimeconfig.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 19, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189006.0>, params: %{}, path_info: ["functions", ".runtimeconfig"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/functions/.runtimeconfig.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7h6vUtoSqogAVSyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/functions/.runtimeconfig.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 19, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /functions/.runtimeconfig (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/functions/.runtimeconfig.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", (truncated) 09:58:38.890 [info] GET /firebase-debug.log 09:58:38.890 [debug] QUERY OK source="settings" db=0.1ms idle=28.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.890 [debug] QUERY OK source="settings" db=0.0ms idle=21.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.891 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.891 [error] #PID<0.189007.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 20) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /firebase-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 /firebase-debug (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/firebase-debug.log", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 20, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189007.0>, params: %{}, path_info: ["firebase-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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/firebase-debug.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7h-C3wu0KLgAVS0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/firebase-debug.log", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 20, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /firebase-debug (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/firebase-debug.log", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, pa (truncated) 09:58:38.914 [info] GET /serverless.yml 09:58:38.915 [debug] QUERY OK source="settings" db=0.1ms idle=45.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.915 [debug] QUERY OK source="settings" db=0.0ms idle=38.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.915 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.915 [error] #PID<0.189008.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 21) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /serverless.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /serverless (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/serverless.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 21, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189008.0>, params: %{}, path_info: ["serverless"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/serverless.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7iD38763NB4AVS2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/serverless.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 21, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /serverless (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/serverless.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 21, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189008.0>, params: %{}, path_info: ["serverless"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en; (truncated) 09:58:38.918 [info] GET /.env_sample 09:58:38.918 [info] GET /serverless.yaml 09:58:38.918 [debug] QUERY OK source="settings" db=0.0ms idle=41.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.918 [debug] QUERY OK source="settings" db=0.0ms idle=27.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.918 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:58:38.918 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.918 [debug] QUERY OK source="settings" db=0.0ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:38.919 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.919 [error] #PID<0.189009.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 22) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env_sample ** (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.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env_sample", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 22, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189009.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env_sample", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7iEq4QFEE5kAVS4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env_sample", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 22, 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.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env_sample", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 22, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189009.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, (truncated) 09:58:38.919 [error] #PID<0.189010.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 17) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /serverless.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 /serverless (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/serverless.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189010.0>, params: %{}, path_info: ["serverless"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/serverless.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7iEuoJzn0kQAVS6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/serverless.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /serverless (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/serverless.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ (truncated) 09:58:38.978 [info] GET /.envrc 09:58:38.978 [debug] QUERY OK source="settings" db=0.1ms idle=62.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38.978 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:38.978 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:38.978 [error] #PID<0.189011.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 18) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.envrc ** (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.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.envrc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189011.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.envrc", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7iS6CsvYBdgAVS8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.envrc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.envrc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189011.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_ (truncated) 09:58:39.121 [info] GET /.vscode/sftp.json 09:58:39.121 [debug] QUERY OK source="settings" db=0.1ms idle=202.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39.121 [debug] QUERY OK source="settings" db=0.0ms idle=202.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39.121 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:39.122 [error] #PID<0.189013.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 20) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.vscode/sftp.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vscode/sftp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 20, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189013.0>, params: %{}, path_info: [".vscode", "sftp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.vscode/sftp.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7i1EJo4KllEAVS-B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 20, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vscode/sftp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forw (truncated) 09:58:39.131 [info] GET /Dockerfile 09:58:39.131 [debug] QUERY OK source="settings" db=0.1ms idle=212.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39.132 [debug] QUERY OK source="settings" db=0.0ms idle=153.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39.132 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:39.132 [error] #PID<0.189014.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 21) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /Dockerfile ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /Dockerfile (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/Dockerfile", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 21, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189014.0>, params: %{}, path_info: ["Dockerfile"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/Dockerfile", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7i3g6g2phoIAVTAB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/Dockerfile", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 21, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /Dockerfile (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/Dockerfile", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", (truncated) 09:58:39.312 [info] GET /.svn/entries 09:58:39.313 [info] GET /.hg/hgrc 09:58:39.313 [debug] QUERY OK source="settings" db=0.1ms idle=334.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39.313 [debug] QUERY OK source="settings" db=0.1ms idle=191.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39.313 [debug] QUERY OK source="settings" db=0.2ms idle=191.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39.313 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:39.313 [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 [] 09:58:39.313 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:39.313 [error] #PID<0.189015.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 22) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.svn/entries ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.svn/entries (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.svn/entries", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 22, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189015.0>, params: %{}, path_info: [".svn", "entries"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.svn/entries", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7jitNvRU0fUAVTCB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.svn/entries", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 22, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.svn/entries (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.svn/entries", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0. (truncated) 09:58:39.314 [error] #PID<0.189016.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 23) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.hg/hgrc ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.hg/hgrc (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.hg/hgrc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 23, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189016.0>, params: %{}, path_info: [".hg", "hgrc"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.hg/hgrc", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA7jiyPQ8cbKUAAFGG"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.hg/hgrc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 23, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.hg/hgrc (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.hg/hgrc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 23, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189016.0>, params: %{}, path_info: [".hg", "hgrc"], path_params: %{}, port: 80, private: %{ (truncated) 09:58:43.483 [info] GET /sources/18/media/16964 09:58:43.484 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16964", "source_id" => "18"} Pipelines: [:browser] 09:58:43.484 [debug] QUERY OK source="media_items" db=0.1ms idle=929.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" = ?) [16964] 09:58:43.484 [debug] QUERY OK source="sources" db=0.1ms idle=929.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 09:58:43.484 [debug] QUERY OK source="tasks" db=0.1ms idle=929.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" [16964] 09:58:43.485 [debug] QUERY OK source="settings" db=0.0ms idle=930.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:43.485 [debug] QUERY OK source="settings" db=0.0ms idle=883.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:43.485 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:43.485 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:58:43.486 [info] Sent 200 in 2ms 09:58:43.712 [info] GET / 09:58:43.712 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 09:58:43.712 [info] GET /sources/41/media/129711 09:58:43.712 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "129711", "source_id" => "41"} Pipelines: [:browser] 09:58:43.712 [debug] QUERY OK source="settings" db=0.1ms idle=227.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:43.713 [debug] QUERY OK source="media_profiles" db=0.1ms idle=227.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 09:58:43.713 [info] GET /sources/16/media/18885 09:58:43.713 [debug] QUERY OK source="media_items" db=0.3ms idle=227.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" = ?) [129711] 09:58:43.713 [info] GET /sources/42/media/16864 09:58:43.713 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18885", "source_id" => "16"} Pipelines: [:browser] 09:58:43.713 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16864", "source_id" => "42"} Pipelines: [:browser] 09:58:43.713 [debug] QUERY OK source="sources" db=0.1ms idle=227.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 09:58:43.713 [info] GET /sources/42 09:58:43.713 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "42"} Pipelines: [:browser] 09:58:43.713 [debug] QUERY OK source="tasks" db=0.2ms idle=110.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" [129711] 09:58:43.713 [debug] QUERY OK source="media_items" db=0.3ms idle=0.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" = ?) [18885] 09:58:43.713 [info] GET /sources 09:58:43.713 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 09:58:43.714 [info] GET /app_info 09:58:43.714 [info] GET /media_profiles 09:58:43.714 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 09:58:43.714 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 09:58:43.714 [debug] QUERY OK source="media_items" db=1.0ms idle=0.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" = ?) [16864] 09:58:43.714 [debug] QUERY OK source="sources" db=0.8ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 09:58:43.716 [debug] QUERY OK source="sources" db=3.0ms queue=0.1ms idle=0.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 09:58:43.716 [debug] QUERY OK source="media_items" db=3.1ms idle=0.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:58:43.716 [info] GET /sources/16/media/18817 09:58:43.717 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18817", "source_id" => "16"} Pipelines: [:browser] 09:58:43.717 [debug] QUERY OK source="tasks" db=3.0ms idle=0.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" [18885] 09:58:43.717 [info] GET /sources/41 09:58:43.717 [info] GET /sources/16/media/116008 09:58:43.717 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "41"} Pipelines: [:browser] 09:58:43.717 [info] GET /sources/18 09:58:43.717 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "116008", "source_id" => "16"} Pipelines: [:browser] 09:58:43.717 [debug] QUERY OK source="settings" db=0.6ms queue=2.5ms 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 [] 09:58:43.717 [info] GET /sources/16 09:58:43.717 [info] GET /sources/42/media/16863 09:58:43.717 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "18"} Pipelines: [:browser] 09:58:43.717 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "16"} Pipelines: [:browser] 09:58:43.717 [debug] QUERY OK source="settings" db=0.6ms queue=2.4ms 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 [] 09:58:43.717 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16863", "source_id" => "42"} Pipelines: [:browser] 09:58:43.717 [info] GET /sources/5/media/106329 09:58:43.717 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "106329", "source_id" => "5"} Pipelines: [:browser] 09:58:43.717 [debug] QUERY OK source="media_profiles" db=1.1ms queue=2.1ms 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", (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" [] 09:58:43.717 [info] GET /sources/5 09:58:43.717 [debug] QUERY OK source="sources" db=1.1ms queue=2.6ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:43.717 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "5"} Pipelines: [:browser] 09:58:43.717 [info] GET /sources/1/media/102094 09:58:43.717 [debug] QUERY OK source="tasks" db=0.3ms queue=0.7ms idle=0.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" [16864] 09:58:43.718 [debug] QUERY OK source="media_profiles" db=0.9ms queue=2.4ms 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] 09:58:43.718 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "102094", "source_id" => "1"} Pipelines: [:browser] 09:58:43.718 [debug] QUERY OK source="sources" db=0.4ms queue=0.8ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 09:58:43.718 [debug] QUERY OK source="media_items" db=0.5ms queue=1.0ms idle=0.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" = ?) [18817] 09:58:43.718 [debug] QUERY OK source="media_items" db=1.2ms queue=0.7ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:58:43.718 [info] GET /sources/1 09:58:43.718 [debug] QUERY OK source="media_items" db=0.6ms queue=0.7ms idle=0.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" = ?) [116008] 09:58:43.718 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 09:58:43.718 [debug] QUERY OK source="sources" db=0.5ms queue=0.9ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 09:58:43.718 [debug] QUERY OK source="settings" db=0.2ms queue=1.2ms 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 [] 09:58:43.719 [debug] QUERY OK source="sources" db=0.3ms queue=1.2ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 09:58:43.719 [debug] QUERY OK source="settings" db=0.3ms queue=1.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 [] 09:58:43.719 [debug] QUERY OK source="sources" db=0.7ms queue=1.2ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:43.720 [debug] QUERY OK source="settings" db=0.5ms queue=1.5ms 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 [] 09:58:43.720 [debug] QUERY OK source="media_items" db=1.0ms queue=1.2ms idle=0.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" = ?) [106329] 09:58:43.720 [debug] QUERY OK source="oban_jobs" db=2.3ms queue=0.8ms idle=0.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" = ?) [14618] 09:58:43.720 [debug] QUERY OK source="sources" db=0.4ms queue=1.6ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 09:58:43.720 [debug] QUERY OK source="media_items" db=0.9ms queue=1.4ms idle=0.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" = ?) [16863] 09:58:43.720 [debug] QUERY OK source="tasks" db=0.7ms queue=1.8ms idle=0.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 (?,?,?,?)) [42, "executing", "available", "scheduled", "retryable"] 09:58:43.721 [debug] QUERY OK source="settings" db=1.0ms queue=1.4ms 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 [] 09:58:43.721 [debug] QUERY OK source="media_items" db=1.3ms queue=1.9ms idle=0.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" = ?) [102094] 09:58:43.721 [debug] QUERY OK source="tasks" db=0.5ms queue=1.9ms idle=0.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" [116008] 09:58:43.721 [debug] QUERY OK source="media_profiles" db=1.3ms queue=1.1ms 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] 09:58:43.721 [debug] QUERY OK source="oban_jobs" db=1.5ms queue=2.0ms idle=0.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 (?,?,?,?,?)) [13606, 14047, 14442, 14475, 14506] 09:58:43.721 [debug] QUERY OK source="sources" db=0.5ms queue=2.3ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:43.722 [debug] QUERY OK source="tasks" db=0.5ms queue=2.7ms idle=0.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" [18817] 09:58:43.722 [debug] QUERY OK source="settings" db=0.9ms queue=2.8ms 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 [] 09:58:43.722 [debug] QUERY OK source="sources" db=1.2ms queue=2.5ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:58:43.722 [debug] QUERY OK source="sources" db=1.2ms queue=2.6ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:43.722 [debug] QUERY OK source="settings" db=0.8ms queue=2.9ms 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 [] 09:58:43.723 [debug] QUERY OK source="media_profiles" db=1.2ms queue=2.8ms 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] 09:58:43.723 [debug] QUERY OK source="settings" db=0.6ms queue=3.0ms 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 [] 09:58:43.723 [debug] QUERY OK source="settings" db=0.6ms queue=2.7ms 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 [] 09:58:43.723 [debug] QUERY OK source="media_profiles" db=1.1ms queue=2.9ms 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] 09:58:43.723 [debug] QUERY OK source="media_profiles" db=0.9ms queue=1.6ms 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] 09:58:43.723 [debug] QUERY OK source="settings" db=0.6ms queue=1.9ms 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 [] 09:58:43.724 [debug] QUERY OK source="tasks" db=0.5ms queue=1.9ms idle=0.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" [106329] 09:58:43.724 [debug] QUERY OK source="sources" db=0.4ms queue=1.9ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 09:58:43.724 [debug] QUERY OK source="settings" db=0.3ms queue=2.2ms 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 [] 09:58:43.724 [debug] QUERY OK source="tasks" db=0.5ms queue=2.2ms idle=0.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" [16863] 09:58:43.724 [debug] QUERY OK source="settings" db=0.6ms queue=1.9ms 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 [] 09:58:43.725 [debug] QUERY OK source="sources" db=1.0ms queue=2.2ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:58:43.725 [debug] QUERY OK source="tasks" db=0.5ms queue=3.0ms idle=0.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" [102094] 09:58:43.725 [debug] QUERY OK source="oban_jobs" db=1.4ms queue=1.9ms idle=0.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 (?,?,?,?,?)) [13605, 14015, 14409, 14441, 14474] 09:58:43.725 [debug] QUERY OK source="settings" db=0.6ms queue=3.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 [] 09:58:43.725 [debug] QUERY OK source="sources" db=1.0ms queue=3.0ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 09:58:43.726 [debug] QUERY OK source="media_profiles" db=0.7ms queue=2.5ms 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] 09:58:43.726 [debug] QUERY OK source="oban_jobs" db=0.6ms queue=2.6ms idle=0.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" = ?) [14407] 09:58:43.726 [debug] QUERY OK source="settings" db=0.4ms queue=3.2ms 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 [] 09:58:43.726 [debug] QUERY OK source="tasks" db=2.0ms queue=2.8ms idle=0.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 (?,?,?,?)) [41, "executing", "available", "scheduled", "retryable"] 09:58:43.727 [debug] QUERY OK source="settings" db=0.9ms queue=2.8ms 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 [] 09:58:43.727 [debug] QUERY OK source="settings" db=1.0ms queue=2.5ms 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 [] 09:58:43.727 [debug] QUERY OK source="tasks" db=0.7ms queue=3.1ms idle=0.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 (?,?,?,?)) [18, "executing", "available", "scheduled", "retryable"] 09:58:43.727 [debug] QUERY OK source="settings" db=0.8ms queue=2.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 [] 09:58:43.727 [info] Sent 200 in 13ms 09:58:43.728 [debug] QUERY OK source="settings" db=0.7ms queue=3.0ms 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 [] 09:58:43.728 [debug] QUERY OK source="settings" db=0.8ms queue=2.9ms 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 [] 09:58:43.728 [debug] QUERY OK source="settings" db=0.9ms queue=2.5ms 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 [] 09:58:43.728 [debug] QUERY OK source="tasks" db=1.8ms queue=2.5ms idle=0.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 (?,?,?,?)) [16, "executing", "available", "scheduled", "retryable"] 09:58:43.728 [debug] QUERY OK source="settings" db=0.3ms queue=3.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 [] 09:58:43.728 [debug] QUERY OK source="tasks" db=0.6ms queue=1.8ms idle=0.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 (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 09:58:43.728 [debug] QUERY OK source="tasks" db=1.7ms queue=3.0ms idle=0.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 (?,?,?,?)) [5, "executing", "available", "scheduled", "retryable"] 09:58:43.729 [debug] QUERY OK source="settings" db=0.6ms queue=2.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 [] 09:58:43.729 [debug] QUERY OK source="oban_jobs" db=0.8ms queue=2.8ms idle=0.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" = ?) [14189] 09:58:43.729 [debug] QUERY OK source="settings" db=0.7ms queue=1.5ms 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 [] 09:58:43.729 [debug] QUERY OK source="settings" db=0.5ms queue=1.9ms 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 [] 09:58:43.729 [debug] QUERY OK source="oban_jobs" db=1.2ms queue=2.3ms idle=0.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" = ?) [14260] 09:58:43.729 [debug] QUERY OK source="oban_jobs" db=0.8ms queue=2.3ms idle=0.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" = ?) [14806] 09:58:43.730 [info] Sent 200 in 15ms 09:58:43.730 [debug] QUERY OK source="settings" db=0.4ms queue=3.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 [] 09:58:43.730 [debug] QUERY OK source="settings" db=0.4ms queue=3.2ms 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 [] 09:58:43.730 [debug] QUERY OK source="settings" db=0.4ms queue=2.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 [] 09:58:43.730 [debug] QUERY OK source="settings" db=0.7ms queue=2.2ms 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 [] 09:58:43.730 [debug] QUERY OK source="settings" db=0.7ms queue=1.7ms 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 [] 09:58:43.730 [debug] QUERY OK source="settings" db=0.7ms queue=1.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 [] 09:58:43.730 [debug] QUERY OK source="settings" db=0.7ms queue=1.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 [] 09:58:43.731 [debug] QUERY OK source="oban_jobs" db=0.2ms queue=2.0ms idle=0.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" = ?) [14786] 09:58:43.731 [debug] QUERY OK source="media_profiles" db=1.2ms queue=1.7ms 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] 09:58:43.731 [debug] QUERY OK source="oban_jobs" db=1.0ms queue=1.6ms idle=0.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" = ?) [14792] 09:58:43.731 [debug] QUERY OK source="settings" db=0.4ms queue=1.9ms 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 [] 09:58:43.731 [debug] QUERY OK source="oban_jobs" db=0.5ms queue=2.2ms idle=0.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" = ?) [14813] 09:58:43.731 [debug] QUERY OK source="settings" db=0.4ms queue=1.8ms 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 [] 09:58:43.732 [info] Sent 200 in 18ms 09:58:43.732 [debug] QUERY OK source="settings" db=0.7ms queue=1.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 [] 09:58:43.732 [debug] QUERY OK source="settings" db=0.6ms queue=1.9ms 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 [] 09:58:43.732 [debug] QUERY OK source="settings" db=0.7ms queue=1.4ms 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 [] 09:58:43.732 [debug] QUERY OK source="tasks" db=0.9ms queue=1.4ms idle=0.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 09:58:43.732 [debug] QUERY OK source="settings" db=0.3ms queue=2.2ms 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 [] 09:58:43.732 [debug] QUERY OK source="settings" db=0.1ms queue=2.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 [] 09:58:43.733 [debug] QUERY OK source="settings" db=0.7ms queue=1.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 [] 09:58:43.733 [debug] QUERY OK source="settings" db=0.7ms queue=1.2ms 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 [] 09:58:43.733 [debug] QUERY OK source="settings" db=0.7ms queue=0.9ms 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 [] 09:58:43.733 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.9ms 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] 09:58:43.734 [debug] QUERY OK source="settings" db=0.7ms queue=1.5ms 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 [] 09:58:43.734 [debug] QUERY OK source="settings" db=0.8ms queue=1.5ms 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 [] 09:58:43.734 [debug] QUERY OK source="settings" db=0.8ms queue=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 [] 09:58:43.734 [debug] QUERY OK source="media_profiles" db=1.3ms queue=2.1ms 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] 09:58:43.734 [info] Sent 200 in 21ms 09:58:43.734 [debug] QUERY OK source="settings" db=0.5ms queue=1.8ms 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 [] 09:58:43.735 [debug] QUERY OK source="sources" db=0.7ms queue=1.8ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 09:58:43.735 [debug] QUERY OK source="settings" db=0.3ms queue=2.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 [] 09:58:43.735 [debug] QUERY OK source="settings" db=0.4ms queue=2.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 [] 09:58:43.735 [debug] QUERY OK source="settings" db=0.2ms queue=1.9ms 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 [] 09:58:43.735 [debug] QUERY OK source="settings" db=0.3ms queue=0.9ms 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 [] 09:58:43.735 [debug] QUERY OK source="settings" db=0.1ms queue=2.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 [] 09:58:43.735 [debug] QUERY OK source="media_profiles" db=0.3ms queue=2.0ms 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] 09:58:43.736 [debug] QUERY OK source="media_items" db=1.0ms queue=2.3ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:58:43.736 [debug] QUERY OK source="settings" db=0.5ms queue=0.8ms 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 [] 09:58:43.736 [debug] QUERY OK source="settings" db=0.6ms queue=2.5ms 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 [] 09:58:43.736 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.9ms 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] 09:58:43.736 [info] Sent 200 in 19ms 09:58:43.737 [debug] QUERY OK source="settings" db=1.0ms queue=1.5ms 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 [] 09:58:43.737 [debug] QUERY OK source="settings" db=0.4ms queue=0.7ms 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 [] 09:58:43.737 [debug] QUERY OK source="settings" db=0.4ms queue=0.8ms 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 [] 09:58:43.737 [debug] QUERY OK source="settings" db=0.2ms queue=1.7ms 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 [] 09:58:43.737 [debug] QUERY OK source="media_profiles" db=0.3ms queue=1.5ms 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] 09:58:43.737 [debug] QUERY OK source="media_items" db=0.9ms queue=1.4ms idle=0.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")))) [42] 09:58:43.738 [debug] QUERY OK source="sources" db=0.5ms queue=1.2ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 09:58:43.738 [debug] QUERY OK source="settings" db=0.4ms 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 [] 09:58:43.738 [info] Sent 200 in 21ms 09:58:43.738 [debug] QUERY OK source="media_items" db=0.8ms queue=1.1ms idle=0.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] 09:58:43.738 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.5ms 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] 09:58:43.739 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.6ms 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] 09:58:43.739 [debug] QUERY OK source="sources" db=1.2ms queue=0.3ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 09:58:43.739 [debug] QUERY OK source="sources" db=1.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 09:58:43.739 [debug] QUERY OK source="sources" db=0.5ms queue=0.9ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:58:43.740 [debug] QUERY OK source="sources" db=1.0ms queue=1.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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 (?,?,?,?)) [1, 5, 16, 41] 09:58:43.740 [debug] QUERY OK source="media_items" db=0.9ms idle=0.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")))) [41] 09:58:43.741 [debug] QUERY OK source="media_items" db=3.1ms queue=0.3ms idle=0.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 ? [42, 10, 0] 09:58:43.741 [debug] QUERY OK source="media_items" db=0.9ms queue=2.3ms idle=0.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")))) [18] 09:58:43.741 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=0.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")))) [1] 09:58:43.741 [debug] QUERY OK source="sources" db=0.2ms queue=0.2ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:43.741 [debug] QUERY OK source="media_items" db=1.1ms idle=0.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] 09:58:43.742 [debug] QUERY OK source="sources" db=0.9ms idle=0.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 09:58:43.743 [debug] QUERY OK source="sources" db=11.4ms queue=1.5ms idle=0.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)) [] 09:58:43.743 [debug] QUERY OK source="media_items" db=2.3ms queue=0.7ms idle=0.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 ? [41, 10, 0] 09:58:43.744 [debug] QUERY OK source="media_items" db=1.4ms queue=1.0ms idle=0.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")))) [16] 09:58:43.744 [debug] QUERY OK source="media_items" db=0.4ms queue=1.5ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [42] 09:58:43.745 [debug] QUERY OK source="media_items" db=3.0ms queue=0.1ms idle=0.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 ? [18, 10, 0] 09:58:43.745 [debug] QUERY OK source="media_items" db=3.5ms idle=0.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 ? [1, 10, 0] 09:58:43.746 [debug] QUERY OK source="sources" db=1.2ms queue=0.7ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 09:58:43.747 [debug] QUERY OK source="media_items" db=1.0ms queue=1.2ms idle=0.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 ? [42, 10, 0] 09:58:43.747 [debug] QUERY OK source="sources" db=0.4ms queue=1.7ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 09:58:43.747 [debug] QUERY OK source="media_items" db=3.8ms queue=1.9ms idle=0.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 ? [5, 10, 0] 09:58:43.748 [debug] QUERY OK source="sources" db=0.6ms queue=2.0ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:58:43.749 [debug] QUERY OK source="media_items" db=3.6ms queue=1.0ms idle=0.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 ? [16, 10, 0] 09:58:43.749 [debug] QUERY OK source="media_items" db=0.3ms idle=1.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [41] 09:58:43.749 [debug] QUERY OK source="media_items" db=0.3ms queue=0.2ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 09:58:43.749 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 09:58:43.749 [debug] QUERY OK source="media_items" db=0.5ms queue=0.3ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [18] 09:58:43.750 [debug] QUERY OK source="media_items" db=0.9ms queue=0.2ms idle=0.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 ? [41, 10, 0] 09:58:43.750 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:43.751 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=0.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 ? [1, 10, 0] 09:58:43.751 [debug] QUERY OK source="media_items" db=7.2ms queue=1.8ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 09:58:43.751 [debug] QUERY OK source="media_items" db=1.0ms queue=0.9ms idle=0.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 ? [18, 10, 0] 09:58:43.752 [debug] QUERY OK source="media_items" db=1.5ms queue=0.7ms idle=0.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"))))) [42] 09:58:43.752 [debug] QUERY OK source="sources" db=1.1ms queue=1.9ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 09:58:43.752 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 09:58:43.752 [debug] QUERY OK source="media_items" db=0.4ms queue=1.4ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [16] 09:58:43.752 [debug] QUERY OK source="sources" db=0.5ms queue=0.6ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:58:43.753 [debug] QUERY OK source="media_items" db=0.4ms queue=0.2ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [5] 09:58:43.754 [debug] QUERY OK source="sources" db=1.0ms queue=0.4ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 09:58:43.754 [debug] QUERY OK source="media_items" db=1.6ms queue=0.5ms idle=0.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 ? [16, 10, 0] 09:58:43.755 [debug] QUERY OK source="media_items" db=2.4ms queue=0.3ms idle=0.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 ? [42, 10, 0] 09:58:43.755 [debug] QUERY OK source="media_items" db=1.3ms queue=1.3ms idle=0.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"))))) [41] 09:58:43.755 [debug] QUERY OK source="media_items" db=2.8ms queue=0.9ms idle=0.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 09:58:43.755 [info] Sent 200 in 42ms 09:58:43.755 [debug] QUERY OK source="media_items" db=0.6ms queue=2.0ms idle=0.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"))))) [1] 09:58:43.756 [debug] QUERY OK source="media_items" db=1.0ms queue=2.1ms idle=0.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] 09:58:43.756 [debug] QUERY OK source="media_items" db=1.0ms queue=1.2ms idle=0.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"))))) [18] 09:58:43.756 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:43.757 [debug] QUERY OK source="sources" db=1.0ms queue=0.7ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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 (?,?,?)) [42, 18, 16] 09:58:43.758 [debug] QUERY OK source="media_items" db=2.5ms queue=0.2ms idle=0.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 ? [41, 10, 0] 09:58:43.758 [debug] QUERY OK source="media_items" db=0.8ms queue=0.8ms idle=0.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"))))) [16] 09:58:43.758 [info] Sent 200 in 41ms 09:58:43.759 [info] Sent 200 in 46ms 09:58:43.759 [debug] QUERY OK source="sources" db=1.0ms queue=1.5ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 09:58:43.759 [debug] QUERY OK source="media_items" db=2.8ms idle=0.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 ? [18, 10, 0] 09:58:43.759 [debug] QUERY OK source="media_items" db=3.0ms queue=0.8ms idle=0.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 ? [1, 10, 0] 09:58:43.759 [debug] QUERY OK source="sources" db=14.5ms queue=1.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", 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] 09:58:43.760 [info] Sent 200 in 42ms 09:58:43.760 [debug] QUERY OK source="media_items" db=1.6ms idle=0.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 ? [16, 10, 0] 09:58:43.760 [info] Sent 200 in 41ms 09:58:43.760 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=0.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"))))) [5] 09:58:43.760 [info] Sent 200 in 43ms 09:58:43.761 [debug] QUERY OK source="media_items" db=0.4ms idle=1.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [5, 10, 0] 09:58:43.761 [info] Sent 200 in 43ms 09:58:43.761 [info] Sent 200 in 47ms 09:58:43.770 [info] Sent 200 in 58ms 09:58:43.776 [info] Sent 200 in 58ms 09:58:43.782 [info] Sent 200 in 64ms 09:58:43.785 [info] Sent 200 in 67ms 09:58:44.998 [info] GET /sources/41/media/129560 09:58:44.998 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "129560", "source_id" => "41"} Pipelines: [:browser] 09:58:44.998 [debug] QUERY OK source="media_items" db=0.1ms idle=1238.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" = ?) [129560] 09:58:44.998 [debug] QUERY OK source="tasks" db=0.1ms idle=1238.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" [129560] 09:58:44.999 [debug] QUERY OK source="sources" db=0.1ms idle=1238.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 09:58:44.999 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1237.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" = ?) [14617] 09:58:44.999 [debug] QUERY OK source="settings" db=0.0ms idle=395.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:44.999 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:45.000 [debug] QUERY OK source="settings" db=0.1ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:45.000 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:58:45.006 [info] Sent 200 in 8ms 09:58:48.110 [info] GET /azure-pipelines.yml 09:58:48.110 [debug] QUERY OK source="settings" db=0.1ms idle=1555.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.110 [debug] QUERY OK source="settings" db=0.0ms idle=1555.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.110 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.111 [error] #PID<0.189084.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /azure-pipelines.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /azure-pipelines (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/azure-pipelines.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189084.0>, params: %{}, path_info: ["azure-pipelines"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/azure-pipelines.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8EUL4_19WogAAFGF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/azure-pipelines.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /azure-pipelines (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/azure-pipelines.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, (truncated) 09:58:48.188 [info] GET /.svn/wc.db 09:58:48.188 [info] GET /.docker/config.json 09:58:48.188 [info] GET /.terraform/terraform.tfstate 09:58:48.189 [debug] QUERY OK source="settings" db=0.4ms idle=580.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.189 [info] GET /debug/pprof 09:58:48.189 [debug] QUERY OK source="settings" db=0.4ms idle=1634.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.189 [debug] QUERY OK source="settings" db=0.4ms idle=1581.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.189 [debug] QUERY OK source="settings" db=0.0ms idle=78.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.189 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.189 [debug] QUERY OK source="settings" db=0.3ms 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 [] 09:58:48.189 [debug] QUERY OK source="settings" db=0.4ms idle=78.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.189 [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 [] 09:58:48.189 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.189 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.189 [info] GET /netlify.toml 09:58:48.190 [debug] QUERY OK source="settings" db=0.2ms queue=0.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 [] 09:58:48.190 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.190 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms 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 [] 09:58:48.190 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.190 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.191 [warning] Attempted to fetch metrics from Elixir.Pinchflat.PromEx, but the module has not been initialized 09:58:48.191 [info] GET /config/master.key 09:58:48.190 [error] #PID<0.189086.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.svn/wc.db ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.svn/wc (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.svn/wc.db", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189086.0>, params: %{}, path_info: [".svn", "wc"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.svn/wc.db", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8Em2vsnEDecAAFIF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.svn/wc.db", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.svn/wc (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.svn/wc.db", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189086.0>, params: %{}, path_info: [".svn", "wc"], path_params: %{}, port: 80, private: %{ (truncated) 09:58:48.191 [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 [] 09:58:48.191 [info] GET /.netlify/state.json 09:58:48.192 [info] GET /.netrc 09:58:48.189 [error] #PID<0.189087.0> running PinchflatWeb.Endpoint (connection #PID<0.189047.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.terraform/terraform.tfstate ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.terraform/terraform (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189047.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.terraform/terraform.tfstate", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38692}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189087.0>, params: %{}, path_info: [".terraform", "terraform"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.terraform/terraform.tfstate", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8Em3jwvOhYwAVVOB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189047.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.terraform/terraform.tfstate", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38692}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.terraform/terraform (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189047.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.terraform/terraform.tfstate", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38692}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agen (truncated) 09:58:48.192 [info] GET /.vercel/output/config.json 09:58:48.192 [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 [] 09:58:48.192 [info] GET /pip.conf 09:58:48.192 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.190 [error] #PID<0.189085.0> running PinchflatWeb.Endpoint (connection #PID<0.189052.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.docker/config.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.docker/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189052.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.docker/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38736}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189085.0>, params: %{}, path_info: [".docker", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.docker/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8Em2cb9sG7EAAGeG"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189052.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.docker/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38736}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.docker/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189052.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.docker/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38736}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189085.0>, params: %{}, path_info: [".docker", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, (truncated) 09:58:48.192 [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 [] 09:58:48.192 [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 [] 09:58:48.190 [error] #PID<0.189089.0> running PinchflatWeb.Endpoint (connection #PID<0.189032.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /debug/pprof ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/pprof (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189032.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/pprof", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38644}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189089.0>, params: %{}, path_info: ["debug", "pprof"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/debug/pprof", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8EnCkwrq1pgAQAkC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189032.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/pprof", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38644}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/pprof (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189032.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/pprof", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38644}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", (truncated) 09:58:48.192 [info] GET /.vercel/project.json 09:58:48.192 [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 [] 09:58:48.192 [info] GET /config/database.yml 09:58:48.191 [error] #PID<0.189090.0> running PinchflatWeb.Endpoint (connection #PID<0.189058.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /netlify.toml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /netlify (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/netlify.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189090.0>, params: %{}, path_info: ["netlify"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/netlify.toml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8EnNwFpiqQMAAGgG"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/netlify.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /netlify (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/netlify.toml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", (truncated) 09:58:48.193 [info] GET /config/credentials.yml.enc 09:58:48.193 [info] GET /.pypirc 09:58:48.193 [debug] QUERY OK source="settings" db=0.6ms 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 [] 09:58:48.193 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.193 [info] GET /.env.enc 09:58:48.193 [debug] QUERY OK source="settings" db=0.7ms 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 [] 09:58:48.193 [debug] QUERY OK source="settings" db=0.5ms 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 [] 09:58:48.193 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.193 [debug] QUERY OK source="settings" db=0.6ms 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 [] 09:58:48.193 [debug] QUERY OK source="settings" db=0.8ms queue=0.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 [] 09:58:48.193 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.193 [info] GET /.env.encrypted 09:58:48.193 [debug] QUERY OK source="settings" db=0.2ms queue=0.4ms 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 [] 09:58:48.193 [debug] QUERY OK source="settings" db=0.4ms queue=0.2ms 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 [] 09:58:48.193 [debug] QUERY OK source="settings" db=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 [] 09:58:48.193 [debug] QUERY OK source="settings" db=0.5ms 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 [] 09:58:48.194 [debug] QUERY OK source="settings" db=0.5ms 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 [] 09:58:48.194 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.194 [debug] QUERY OK source="settings" db=0.5ms queue=0.2ms 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 [] 09:58:48.194 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.192 [error] #PID<0.189091.0> running PinchflatWeb.Endpoint (connection #PID<0.189048.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config/master.key ** (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/master (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/master.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189091.0>, params: %{}, path_info: ["config", "master"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/master.key", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8Enie0Tt-EcAQAmC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/master.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/master (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/master.key", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forw (truncated) 09:58:48.194 [debug] QUERY OK source="settings" db=0.7ms 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 [] 09:58:48.194 [info] GET /.pip/pip.conf 09:58:48.194 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.194 [debug] QUERY OK source="settings" db=0.2ms queue=0.5ms 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 [] 09:58:48.194 [debug] QUERY OK source="settings" db=0.5ms 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 [] 09:58:48.194 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.194 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.193 [error] #PID<0.189092.0> running PinchflatWeb.Endpoint (connection #PID<0.188953.0>, stream id 25) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.netrc ** (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.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.netrc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 25, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189092.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.netrc", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8EnsupTm8dsAVVQB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.netrc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 25, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.netrc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34806}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 25, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189092.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", (truncated) 09:58:48.193 [error] #PID<0.189093.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.netlify/state.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 /.netlify/state (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.netlify/state.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189093.0>, params: %{}, path_info: [".netlify", "state"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.netlify/state.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8Enr1Hn0GREAAFKF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.netlify/state.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.netlify/state (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.netlify/state.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189093.0>, params: %{}, path_info: [".netlify", "state"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, (truncated) 09:58:48.195 [debug] QUERY OK source="settings" db=1.5ms 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 [] 09:58:48.195 [debug] QUERY OK source="settings" db=1.5ms queue=0.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 [] 09:58:48.195 [debug] QUERY OK source="settings" db=0.7ms 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 [] 09:58:48.195 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.193 [error] #PID<0.189094.0> running PinchflatWeb.Endpoint (connection #PID<0.189047.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.vercel/output/config.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vercel/output/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189047.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vercel/output/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38692}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189094.0>, params: %{}, path_info: [".vercel", "output", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.vercel/output/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8Env2WkWWJMAAGiG"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189047.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vercel/output/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38692}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vercel/output/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189047.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vercel/output/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38692}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" = (truncated) 09:58:48.196 [info] GET /.env.vault 09:58:48.196 [debug] QUERY OK source="settings" db=0.3ms 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 [] 09:58:48.196 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.196 [debug] QUERY OK source="settings" db=0.3ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.196 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.194 [error] #PID<0.189095.0> running PinchflatWeb.Endpoint (connection #PID<0.189062.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /pip.conf ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /pip (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189062.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/pip.conf", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38754}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189095.0>, params: %{}, path_info: ["pip"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/pip.conf", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8EnwvmlB8QUAQAoC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189062.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/pip.conf", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38754}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /pip (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189062.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/pip.conf", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38754}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Cadd (truncated) 09:58:48.196 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.195 [error] #PID<0.189097.0> running PinchflatWeb.Endpoint (connection #PID<0.189032.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config/database.yml ** (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.189032.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/database.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38644}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189097.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/database.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8En1hELdvzMAKbsD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189032.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/database.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38644}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/database (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189032.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/database.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38644}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", (truncated) 09:58:48.194 [error] #PID<0.189096.0> running PinchflatWeb.Endpoint (connection #PID<0.189052.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.vercel/project.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 /.vercel/project (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189052.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vercel/project.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38736}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189096.0>, params: %{}, path_info: [".vercel", "project"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.vercel/project.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8En05QWIelEAQAqC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189052.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vercel/project.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38736}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vercel/project (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189052.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vercel/project.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38736}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189096.0>, params: %{}, path_info: [".vercel", "projec (truncated) 09:58:48.197 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.195 [error] #PID<0.189099.0> running PinchflatWeb.Endpoint (connection #PID<0.189050.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.pypirc ** (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.189050.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.pypirc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38734}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189099.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.pypirc", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8En9maVb3kQAVVSB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189050.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.pypirc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38734}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189050.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.pypirc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38734}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x (truncated) 09:58:48.195 [error] #PID<0.189100.0> running PinchflatWeb.Endpoint (connection #PID<0.189046.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.enc ** (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.189046.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.enc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38676}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189100.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.enc", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8En_u1LncEcAAGkG"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189046.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.enc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38676}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189046.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.enc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38676}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => (truncated) 09:58:48.196 [error] #PID<0.189098.0> running PinchflatWeb.Endpoint (connection #PID<0.189058.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config/credentials.yml.enc ** (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/credentials.yml (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/credentials.yml.enc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189098.0>, params: %{}, path_info: ["config", "credentials.yml"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config/credentials.yml.enc", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8En79txph7MAAFMF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/credentials.yml.enc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/credentials.yml (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/credentials.yml.enc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, (truncated) 09:58:48.196 [error] #PID<0.189101.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 26) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.encrypted ** (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.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.encrypted", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 26, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189101.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.encrypted", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8EoDzbqOooYAAGmG"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.encrypted", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 26, 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.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.encrypted", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", (truncated) 09:58:48.196 [error] #PID<0.189102.0> running PinchflatWeb.Endpoint (connection #PID<0.189048.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.pip/pip.conf ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.pip/pip (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.pip/pip.conf", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189102.0>, params: %{}, path_info: [".pip", "pip"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.pip/pip.conf", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8EoU206HLssAAFOF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.pip/pip.conf", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.pip/pip (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.pip/pip.conf", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189102.0>, params: %{}, path_info: [".pip", "pip"], path_params: %{}, port: 80, (truncated) 09:58:48.198 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.198 [error] #PID<0.189103.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.vault ** (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.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.vault", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189103.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.vault", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8Eop5EoPHjQAABwH"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.vault", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.vault", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189103.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.ll (truncated) 09:58:48.589 [info] GET /.env.production.enc 09:58:48.589 [debug] QUERY OK source="settings" db=0.1ms idle=394.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.590 [debug] QUERY OK source="settings" db=0.1ms idle=393.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.590 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.590 [error] #PID<0.189104.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 7) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.production.enc ** (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.production (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production.enc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189104.0>, params: %{}, path_info: [".env.production"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.production.enc", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GGeR-2XAnMAVVcB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production.enc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env.production (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production.enc", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/53 (truncated) 09:58:48.625 [info] GET /api/v1/status/config 09:58:48.625 [debug] QUERY OK source="settings" db=0.1ms idle=428.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.625 [debug] QUERY OK source="settings" db=0.0ms idle=428.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.625 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.626 [error] #PID<0.189105.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 8) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/v1/status/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v1/status/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/status/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189105.0>, params: %{}, path_info: ["api", "v1", "status", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/v1/status/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GO_67Vi23UAVVeB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/status/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v1/status/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/status/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189105.0>, params: %{}, path_info (truncated) 09:58:48.627 [info] GET /v1/kv/ 09:58:48.628 [debug] QUERY OK source="settings" db=0.0ms idle=38.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.628 [debug] QUERY OK source="settings" db=0.1ms idle=38.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.628 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.628 [info] GET /minio/health/live 09:58:48.628 [debug] QUERY OK source="settings" db=0.0ms idle=18.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.628 [debug] QUERY OK source="settings" db=0.0ms idle=3.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.629 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.629 [info] GET /api/v1/me 09:58:48.630 [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 [] 09:58:48.630 [info] GET /api/users/admin/check 09:58:48.630 [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 [] 09:58:48.630 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.628 [error] #PID<0.189106.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 9) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /v1/kv/?recurse ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v1/kv (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v1/kv/", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "recurse", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189106.0>, params: %{"recurse" => ""}, path_info: ["v1", "kv"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{"recurse" => ""}, query_string: "recurse", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/v1/kv/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GPowaYS5a4AQA0C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v1/kv/", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "recurse", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v1/kv (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v1/kv/", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1" (truncated) 09:58:48.630 [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 [] 09:58:48.630 [info] GET /api/http/routers 09:58:48.630 [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 [] 09:58:48.630 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.630 [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 [] 09:58:48.629 [error] #PID<0.189107.0> running PinchflatWeb.Endpoint (connection #PID<0.189048.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /minio/health/live ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /minio/health/live (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/minio/health/live", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189107.0>, params: %{}, path_info: ["minio", "health", "live"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/minio/health/live", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GPwi9qrHGYAVVgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/minio/health/live", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /minio/health/live (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/minio/health/live", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", (truncated) 09:58:48.630 [info] GET /debug/pprof/cmdline 09:58:48.630 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:48.631 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.631 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:48.631 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.631 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.630 [error] #PID<0.189108.0> running PinchflatWeb.Endpoint (connection #PID<0.188957.0>, stream id 27) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/v1/me ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v1/me (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/me", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 27, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189108.0>, params: %{}, path_info: ["api", "v1", "me"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/v1/me", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GQFALNlCc4AAGoG"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/me", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 27, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v1/me (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.188957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/me", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 34838}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", (truncated) 09:58:48.630 [error] #PID<0.189109.0> running PinchflatWeb.Endpoint (connection #PID<0.189058.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/users/admin/check ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/users/admin/check (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/users/admin/check", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189109.0>, params: %{}, path_info: ["api", "users", "admin", "check"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/users/admin/check", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GQKrbeID_YAAFQF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/users/admin/check", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/users/admin/check (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/users/admin/check", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189109.0>, params: %{}, p (truncated) 09:58:48.631 [error] #PID<0.189111.0> running PinchflatWeb.Endpoint (connection #PID<0.189048.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /debug/pprof/cmdline ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/pprof/cmdline (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/pprof/cmdline", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189111.0>, params: %{}, path_info: ["debug", "pprof", "cmdline"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/debug/pprof/cmdline", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GQVqkYW8K8AAByH"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/pprof/cmdline", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/pprof/cmdline (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/pprof/cmdline", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189111.0>, params: %{}, path_info: ["debug", "pprof", "cmdline"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encodi (truncated) 09:58:48.631 [error] #PID<0.189110.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 10) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/http/routers ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/http/routers (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/http/routers", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189110.0>, params: %{}, path_info: ["api", "http", "routers"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/http/routers", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GQP2mJbAeYAVViB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/http/routers", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/http/routers (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/http/routers", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, (truncated) 09:58:48.640 [info] GET /api/version 09:58:48.640 [debug] QUERY OK source="settings" db=0.1ms idle=9.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.640 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:48.640 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.642 [info] GET /geoserver/web/ 09:58:48.642 [info] GET /.bash_history 09:58:48.642 [debug] QUERY OK source="settings" db=0.0ms idle=11.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.641 [error] #PID<0.189112.0> running PinchflatWeb.Endpoint (connection #PID<0.189048.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/version ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/version (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/version", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189112.0>, params: %{}, path_info: ["api", "version"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/version", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GSjdHhj70QAAGqG"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/version", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/version (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/version", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", (truncated) 09:58:48.642 [debug] QUERY OK source="settings" db=0.0ms idle=11.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.642 [info] GET /server/info 09:58:48.642 [debug] QUERY OK source="settings" db=0.1ms idle=11.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.642 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.642 [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 [] 09:58:48.642 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.642 [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 [] 09:58:48.643 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:48.643 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.643 [error] #PID<0.189114.0> running PinchflatWeb.Endpoint (connection #PID<0.189058.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.bash_history ** (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.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.bash_history", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189114.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.bash_history", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GTFt2XQLeYAAFSF"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.bash_history", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.bash_history", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189114.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc (truncated) 09:58:48.642 [error] #PID<0.189113.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 11) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /geoserver/web/ ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /geoserver/web (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/geoserver/web/", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189113.0>, params: %{}, path_info: ["geoserver", "web"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/geoserver/web/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GTDC8QBVWAAVVkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/geoserver/web/", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /geoserver/web (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/geoserver/web/", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, (truncated) 09:58:48.644 [info] GET /.sh_history 09:58:48.644 [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 [] 09:58:48.644 [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 [] 09:58:48.644 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.645 [info] GET /.zsh_history 09:58:48.643 [error] #PID<0.189115.0> running PinchflatWeb.Endpoint (connection #PID<0.189048.0>, stream id 7) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /server/info ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server/info (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server/info", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189115.0>, params: %{}, path_info: ["server", "info"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/server/info", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GTKIzpgvJkAAGsG"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server/info", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server/info (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189048.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server/info", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38708}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", (truncated) 09:58:48.645 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.645 [debug] QUERY OK source="settings" db=0.0ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.645 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.645 [error] #PID<0.189116.0> running PinchflatWeb.Endpoint (connection #PID<0.189058.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.sh_history ** (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.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.sh_history", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189116.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.sh_history", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GTkr2WzF0MAVVmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.sh_history", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.sh_history", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189116.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [ (truncated) 09:58:48.645 [error] #PID<0.189117.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 12) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.zsh_history ** (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.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.zsh_history", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189117.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.zsh_history", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8GTtfqgxi2AAAB0H"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.zsh_history", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 12, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.zsh_history", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via (truncated) 09:58:48.905 [info] GET /cloudbuild.yaml 09:58:48.905 [debug] QUERY OK source="settings" db=0.1ms idle=262.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.906 [debug] QUERY OK source="settings" db=0.0ms idle=261.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.906 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.906 [error] #PID<0.189118.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 13) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /cloudbuild.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 /cloudbuild (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/cloudbuild.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189118.0>, params: %{}, path_info: ["cloudbuild"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/cloudbuild.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8HRzgP0u9MQAVVoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/cloudbuild.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 13, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /cloudbuild (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/cloudbuild.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pin (truncated) 09:58:48.948 [info] GET /buildspec.yml 09:58:48.948 [debug] QUERY OK source="settings" db=0.0ms idle=304.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.949 [debug] QUERY OK source="settings" db=0.0ms idle=303.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.949 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.949 [error] #PID<0.189119.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 14) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /buildspec.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /buildspec (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/buildspec.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189119.0>, params: %{}, path_info: ["buildspec"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/buildspec.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8HcGYVhCBh0AVVqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/buildspec.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /buildspec (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/buildspec.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "" (truncated) 09:58:48.977 [info] GET /cloudbuild.json 09:58:48.977 [debug] QUERY OK source="settings" db=0.0ms idle=332.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48.977 [debug] QUERY OK source="settings" db=0.0ms idle=71.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.978 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.978 [error] #PID<0.189120.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 15) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /cloudbuild.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 /cloudbuild (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/cloudbuild.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189120.0>, params: %{}, path_info: ["cloudbuild"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/cloudbuild.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8Hi9MQJbamQAVVsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/cloudbuild.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 15, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /cloudbuild (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/cloudbuild.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1 (truncated) 09:58:48.988 [info] GET /buildspec.yaml 09:58:48.988 [debug] QUERY OK source="settings" db=0.0ms idle=82.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:48.988 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:48.989 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:48.989 [error] #PID<0.189121.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 16) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /buildspec.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 /buildspec (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/buildspec.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189121.0>, params: %{}, path_info: ["buildspec"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/buildspec.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8HlmTQdUrj8AVVuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/buildspec.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /buildspec (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/buildspec.yaml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 16, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189121.0>, params: %{}, path_info: ["buildspec"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0. (truncated) 09:58:49.000 [info] GET /.github/workflows/deploy.yml 09:58:49.001 [debug] QUERY OK source="settings" db=0.1ms idle=51.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:49.001 [info] GET /.github/workflows/ci.yml 09:58:49.001 [debug] QUERY OK source="settings" db=0.0ms idle=23.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:49.001 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:49.001 [debug] QUERY OK source="settings" db=0.0ms idle=23.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:49.001 [debug] QUERY OK source="settings" db=0.0ms idle=12.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:49.001 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:49.001 [error] #PID<0.189122.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 17) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.github/workflows/deploy.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.github/workflows/deploy (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.github/workflows/deploy.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189122.0>, params: %{}, path_info: [".github", "workflows", "deploy"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.github/workflows/deploy.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8HoiW6jbOkIAAEEI"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.github/workflows/deploy.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 17, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.github/workflows/deploy (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.github/workflows/deploy.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", (truncated) 09:58:49.002 [error] #PID<0.189123.0> running PinchflatWeb.Endpoint (connection #PID<0.189058.0>, stream id 7) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.github/workflows/ci.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.github/workflows/ci (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.github/workflows/ci.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189123.0>, params: %{}, path_info: [".github", "workflows", "ci"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"dnt", "1"}, {"host", "pinchflat.econ.llc"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.github/workflows/ci.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8HoogrcUIWkAVVwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.github/workflows/ci.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.github/workflows/ci (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.github/workflows/ci.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "dnt" => "1", "host" => "pinchflat.econ.llc", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189123.0>, params: %{}, (truncated) 09:58:49.008 [info] GET /.github/workflows/release.yml 09:58:49.009 [debug] QUERY OK source="settings" db=0.0ms idle=20.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:49.009 [debug] QUERY OK source="settings" db=0.0ms idle=8.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:49.009 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:49.009 [error] #PID<0.189124.0> running PinchflatWeb.Endpoint (connection #PID<0.189058.0>, stream id 8) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.github/workflows/release.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.github/workflows/release (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.github/workflows/release.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189124.0>, params: %{}, path_info: [".github", "workflows", "release"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.github/workflows/release.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8HqeDM79y_AAAEGI"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.github/workflows/release.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 8, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.github/workflows/release (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.github/workflows/release.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec- (truncated) 09:58:49.045 [info] GET /.gitlab-ci.yml 09:58:49.045 [debug] QUERY OK source="settings" db=0.1ms idle=44.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:49.045 [debug] QUERY OK source="settings" db=0.0ms idle=44.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:49.046 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:49.046 [error] #PID<0.189125.0> running PinchflatWeb.Endpoint (connection #PID<0.189058.0>, stream id 9) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.gitlab-ci.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.gitlab-ci (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.gitlab-ci.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189125.0>, params: %{}, path_info: [".gitlab-ci"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "fr-FR,fr;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"130\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"macOS\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.gitlab-ci.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8HzK-4zN4-gAAEII"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.gitlab-ci.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.gitlab-ci (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.gitlab-ci.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "fr-FR,fr;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"130\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"macOS\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.e (truncated) 09:58:49.090 [info] GET /Jenkinsfile 09:58:49.090 [info] GET /.circleci/config.yml 09:58:49.091 [debug] QUERY OK source="settings" db=0.1ms idle=89.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:49.091 [debug] QUERY OK source="settings" db=0.1ms idle=81.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:49.091 [debug] QUERY OK source="settings" db=0.0ms idle=81.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:49.091 [debug] QUERY OK source="settings" db=0.0ms idle=45.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:49.091 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:49.091 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:49.091 [error] #PID<0.189126.0> running PinchflatWeb.Endpoint (connection #PID<0.189060.0>, stream id 18) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /Jenkinsfile ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /Jenkinsfile (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/Jenkinsfile", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189126.0>, params: %{}, path_info: ["Jenkinsfile"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/Jenkinsfile", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8H99GmK5yWAAVVyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/Jenkinsfile", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /Jenkinsfile (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189060.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/Jenkinsfile", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38752}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 18, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189126.0>, params: %{}, path_info: ["Jenkinsfile"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, (truncated) 09:58:49.091 [error] #PID<0.189127.0> running PinchflatWeb.Endpoint (connection #PID<0.189058.0>, stream id 10) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.circleci/config.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.circleci/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.circleci/config.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189127.0>, params: %{}, path_info: [".circleci", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-GB,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Linux\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.circleci/config.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8H99hJppOEAAAEKI"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.circleci/config.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.circleci/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.circleci/config.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-GB,en;q=0.5", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"124\", \"Not_A Brand\";v=\"8\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Linux\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: (truncated) 09:58:49.144 [info] GET /bitbucket-pipelines.yml 09:58:49.144 [debug] QUERY OK source="settings" db=0.1ms idle=98.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:49.144 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:49.144 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:49.145 [error] #PID<0.189128.0> running PinchflatWeb.Endpoint (connection #PID<0.189058.0>, stream id 11) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /bitbucket-pipelines.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bitbucket-pipelines (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bitbucket-pipelines.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189128.0>, params: %{}, path_info: ["bitbucket-pipelines"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "de-DE,de;q=0.9,en-US;q=0.8"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "none"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/bitbucket-pipelines.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8IKsjYru8A8AAEMI"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bitbucket-pipelines.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 11, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bitbucket-pipelines (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bitbucket-pipelines.yml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "de-DE,de;q=0.9,en-US;q=0.8", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"133\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "none", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows (truncated) 09:58:49.875 [info] GET /sources/42/media/16864 09:58:49.875 [info] GET /sources/16/media/18885 09:58:49.875 [info] GET /sources/1/media/102094 09:58:49.875 [info] GET /media_profiles 09:58:49.875 [info] GET /sources/41 09:58:49.875 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 09:58:49.875 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18885", "source_id" => "16"} Pipelines: [:browser] 09:58:49.875 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "102094", "source_id" => "1"} Pipelines: [:browser] 09:58:49.875 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16864", "source_id" => "42"} Pipelines: [:browser] 09:58:49.875 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "41"} Pipelines: [:browser] 09:58:49.876 [debug] QUERY OK source="sources" db=1.3ms idle=730.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 09:58:49.876 [debug] QUERY OK source="media_items" db=1.3ms idle=784.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" = ?) [16864] 09:58:49.876 [debug] QUERY OK source="media_items" db=1.3ms idle=730.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" = ?) [102094] 09:58:49.876 [debug] QUERY OK source="media_items" db=1.4ms idle=784.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" = ?) [18885] 09:58:49.876 [debug] QUERY OK source="media_profiles" db=1.4ms idle=263.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 09:58:49.877 [debug] QUERY OK source="tasks" db=0.5ms idle=0.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" [102094] 09:58:49.877 [debug] QUERY OK source="tasks" db=0.5ms idle=0.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" [16864] 09:58:49.877 [debug] QUERY OK source="tasks" db=0.5ms idle=0.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" [18885] 09:58:49.877 [debug] QUERY OK source="media_profiles" db=0.8ms idle=0.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:58:49.878 [debug] QUERY OK source="settings" db=0.6ms queue=0.4ms 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 [] 09:58:49.878 [debug] QUERY OK source="sources" db=1.3ms idle=0.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:58:49.878 [debug] QUERY OK source="sources" db=0.9ms queue=0.5ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:49.878 [debug] QUERY OK source="tasks" db=0.8ms idle=0.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 (?,?,?,?)) [41, "executing", "available", "scheduled", "retryable"] 09:58:49.878 [debug] QUERY OK source="sources" db=1.2ms queue=0.5ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 09:58:49.878 [debug] QUERY OK source="settings" db=0.4ms queue=0.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 [] 09:58:49.878 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=0.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" = ?) [14189] 09:58:49.879 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=0.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" = ?) [14806] 09:58:49.879 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=0.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 (?,?,?,?,?)) [13606, 14047, 14442, 14475, 14506] 09:58:49.879 [debug] QUERY OK source="settings" db=0.6ms 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 [] 09:58:49.879 [debug] QUERY OK source="settings" db=0.5ms 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 [] 09:58:49.879 [debug] QUERY OK source="settings" db=0.5ms 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 [] 09:58:49.879 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:58:49.880 [debug] QUERY OK source="settings" db=0.4ms 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 [] 09:58:49.880 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms 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 [] 09:58:49.880 [info] Sent 200 in 5ms 09:58:49.880 [debug] QUERY OK source="settings" db=0.4ms 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 [] 09:58:49.880 [debug] QUERY OK source="settings" db=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 [] 09:58:49.880 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:58:49.880 [debug] QUERY OK source="settings" db=0.3ms idle=0.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:49.880 [debug] QUERY OK source="settings" db=0.3ms idle=0.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:49.880 [debug] QUERY OK source="settings" db=0.3ms idle=0.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:49.881 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:58:49.881 [debug] QUERY OK source="settings" db=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 [] 09:58:49.881 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:58:49.881 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [41] 09:58:49.881 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:58:49.882 [debug] QUERY OK source="media_items" db=0.2ms idle=0.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [41] 09:58:49.882 [info] Sent 200 in 7ms 09:58:49.882 [debug] QUERY OK source="media_items" db=0.3ms idle=0.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 ? [41, 10, 0] 09:58:49.882 [debug] QUERY OK source="sources" db=0.0ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 09:58:49.883 [debug] QUERY OK source="media_items" db=0.0ms idle=1.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [41] 09:58:49.883 [info] Sent 200 in 8ms 09:58:49.883 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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 ? [41, 10, 0] 09:58:49.884 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 09:58:49.884 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [41] 09:58:49.884 [debug] QUERY OK source="media_items" db=0.3ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [41, 10, 0] 09:58:49.885 [info] Sent 200 in 10ms 09:58:49.886 [info] Sent 200 in 11ms 09:58:50.063 [info] GET /sources/41/media/129560 09:58:50.063 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "129560", "source_id" => "41"} Pipelines: [:browser] 09:58:50.064 [debug] QUERY OK source="media_items" db=0.2ms idle=180.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" = ?) [129560] 09:58:50.064 [debug] QUERY OK source="tasks" db=0.1ms idle=181.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" [129560] 09:58:50.064 [debug] QUERY OK source="sources" db=0.2ms idle=180.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 09:58:50.065 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=180.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" = ?) [14617] 09:58:50.065 [debug] QUERY OK source="settings" db=0.0ms idle=180.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:50.065 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:50.065 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:50.066 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 09:58:50.069 [info] GET /sources/42 09:58:50.069 [info] GET /sources 09:58:50.069 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "42"} Pipelines: [:browser] 09:58:50.069 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 09:58:50.069 [debug] QUERY OK source="settings" db=0.3ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 09:58:50.069 [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" = ?) [42] 09:58:50.069 [info] GET / 09:58:50.069 [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 [] 09:58:50.069 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 09:58:50.069 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 09:58:50.070 [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 [] 09:58:50.070 [debug] QUERY OK source="tasks" db=0.2ms idle=0.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [42, "executing", "available", "scheduled", "retryable"] 09:58:50.070 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:58:50.070 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 09:58:50.070 [debug] QUERY OK source="settings" db=0.0ms 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 [] 09:58:50.070 [debug] QUERY OK source="sources" db=0.1ms idle=0.4ms SELECT count(s0."id") FROM "sources" AS s0 [] 09:58:50.070 [info] Sent 200 in 6ms 09:58:50.070 [info] GET /sources/5/media/106329 09:58:50.070 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "106329", "source_id" => "5"} Pipelines: [:browser] 09:58:50.070 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:58:50.070 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:58:50.071 [info] GET /sources/18 09:58:50.071 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "18"} Pipelines: [:browser] 09:58:50.071 [info] GET /sources/5 09:58:50.071 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "5"} Pipelines: [:browser] 09:58:50.071 [info] GET /sources/1 09:58:50.071 [info] GET /sources/42/media/16863 09:58:50.071 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 09:58:50.071 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16863", "source_id" => "42"} Pipelines: [:browser] 09:58:50.071 [debug] QUERY OK source="settings" db=0.4ms 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 [] 09:58:50.071 [debug] QUERY OK source="media_items" db=0.4ms idle=0.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" = ?) [106329] 09:58:50.071 [info] GET /sources/41/media/129711 09:58:50.071 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "129711", "source_id" => "41"} Pipelines: [:browser] 09:58:50.071 [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 [] 09:58:50.071 [info] GET /sources/16/media/116008 09:58:50.071 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "116008", "source_id" => "16"} Pipelines: [:browser] 09:58:50.071 [info] GET /sources/16/media/18817 09:58:50.071 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18817", "source_id" => "16"} Pipelines: [:browser] 09:58:50.072 [debug] QUERY OK source="sources" db=0.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" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 09:58:50.072 [debug] QUERY OK source="sources" db=1.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 09:58:50.072 [debug] QUERY OK source="media_items" db=0.5ms queue=0.3ms idle=0.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" = ?) [129711] 09:58:50.072 [info] GET /app_info 09:58:50.072 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:58:50.072 [info] GET /sources/16 09:58:50.072 [debug] QUERY OK source="media_items" db=1.0ms queue=0.2ms idle=0.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" = ?) [16863] 09:58:50.072 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 09:58:50.072 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "16"} Pipelines: [:browser] 09:58:50.073 [debug] QUERY OK source="media_items" db=2.9ms idle=0.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:58:50.073 [debug] QUERY OK source="tasks" db=0.8ms queue=1.1ms idle=0.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" [106329] 09:58:50.073 [debug] QUERY OK source="media_items" db=0.8ms queue=0.9ms idle=0.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" = ?) [116008] 09:58:50.073 [debug] QUERY OK source="sources" db=1.0ms queue=1.0ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 09:58:50.074 [debug] QUERY OK source="tasks" db=0.5ms queue=0.8ms idle=0.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" [129711] 09:58:50.074 [debug] QUERY OK source="media_items" db=0.8ms queue=1.6ms idle=0.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" = ?) [18817] 09:58:50.074 [debug] QUERY OK source="media_profiles" db=0.8ms queue=1.4ms 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] 09:58:50.074 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.9ms 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] 09:58:50.074 [debug] QUERY OK source="tasks" db=0.3ms queue=1.5ms idle=0.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" [16863] 09:58:50.074 [debug] QUERY OK source="settings" db=0.4ms queue=1.5ms 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 [] 09:58:50.075 [debug] QUERY OK source="sources" db=0.9ms queue=1.3ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 09:58:50.075 [debug] QUERY OK source="media_profiles" db=0.7ms queue=2.1ms 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] 09:58:50.075 [debug] QUERY OK source="sources" db=0.9ms queue=1.9ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 09:58:50.075 [debug] QUERY OK source="sources" db=0.7ms queue=2.0ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:50.075 [debug] QUERY OK source="sources" db=0.7ms queue=2.2ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 09:58:50.076 [debug] QUERY OK source="tasks" db=0.2ms queue=1.9ms idle=0.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" [116008] 09:58:50.076 [debug] QUERY OK source="oban_jobs" db=0.4ms queue=1.7ms idle=0.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" = ?) [14260] 09:58:50.076 [debug] QUERY OK source="tasks" db=0.3ms queue=1.5ms idle=0.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" [18817] 09:58:50.076 [debug] QUERY OK source="tasks" db=0.3ms queue=1.5ms idle=0.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 (?,?,?,?)) [18, "executing", "available", "scheduled", "retryable"] 09:58:50.076 [debug] QUERY OK source="sources" db=0.4ms queue=2.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:50.076 [debug] QUERY OK source="media_items" db=1.2ms queue=1.9ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:58:50.076 [debug] QUERY OK source="sources" db=0.4ms queue=1.8ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:50.076 [debug] QUERY OK source="tasks" db=0.5ms queue=1.8ms idle=0.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 (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 09:58:50.077 [debug] QUERY OK source="settings" db=0.5ms queue=1.8ms 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 [] 09:58:50.077 [debug] QUERY OK source="settings" db=0.4ms queue=0.8ms 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 [] 09:58:50.077 [debug] QUERY OK source="settings" db=0.5ms queue=0.7ms 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 [] 09:58:50.077 [debug] QUERY OK source="oban_jobs" db=0.7ms queue=1.5ms idle=0.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" = ?) [14618] 09:58:50.077 [debug] QUERY OK source="tasks" db=0.4ms queue=1.7ms idle=0.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 (?,?,?,?)) [5, "executing", "available", "scheduled", "retryable"] 09:58:50.078 [debug] QUERY OK source="settings" db=0.5ms queue=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 [] 09:58:50.078 [debug] QUERY OK source="media_profiles" db=0.8ms queue=1.6ms 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] 09:58:50.078 [debug] QUERY OK source="settings" db=0.6ms queue=0.9ms 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 [] 09:58:50.078 [debug] QUERY OK source="media_items" db=1.3ms queue=1.8ms idle=0.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")))) [42] 09:58:50.079 [debug] QUERY OK source="oban_jobs" db=0.5ms queue=1.6ms idle=0.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" = ?) [14407] 09:58:50.079 [debug] QUERY OK source="oban_jobs" db=0.5ms queue=1.3ms idle=0.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" = ?) [14786] 09:58:50.079 [debug] QUERY OK source="oban_jobs" db=0.6ms queue=1.3ms idle=0.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 (?,?,?,?,?)) [13605, 14015, 14409, 14441, 14474] 09:58:50.079 [debug] QUERY OK source="settings" db=0.2ms 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 [] 09:58:50.079 [debug] QUERY OK source="settings" db=0.3ms queue=1.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 [] 09:58:50.079 [debug] QUERY OK source="settings" db=0.4ms queue=1.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 [] 09:58:50.079 [debug] QUERY OK source="settings" db=0.5ms queue=1.5ms 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 [] 09:58:50.079 [debug] QUERY OK source="settings" db=0.6ms queue=1.5ms 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 [] 09:58:50.079 [debug] QUERY OK source="oban_jobs" db=0.2ms queue=1.7ms idle=0.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" = ?) [14813] 09:58:50.080 [debug] QUERY OK source="settings" db=0.3ms 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 [] 09:58:50.080 [debug] QUERY OK source="settings" db=0.3ms queue=1.5ms 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 [] 09:58:50.080 [debug] QUERY OK source="settings" db=0.4ms queue=0.8ms 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 [] 09:58:50.080 [debug] QUERY OK source="tasks" db=0.7ms queue=1.4ms idle=0.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 (?,?,?,?)) [16, "executing", "available", "scheduled", "retryable"] 09:58:50.080 [debug] QUERY OK source="settings" db=0.5ms queue=0.5ms 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 [] 09:58:50.080 [debug] QUERY OK source="settings" db=0.5ms queue=0.5ms 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 [] 09:58:50.081 [debug] QUERY OK source="settings" db=0.5ms queue=0.8ms 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 [] 09:58:50.081 [debug] QUERY OK source="settings" db=0.5ms queue=1.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 [] 09:58:50.081 [debug] QUERY OK source="settings" db=0.7ms queue=1.5ms 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 [] 09:58:50.081 [debug] QUERY OK source="sources" db=9.3ms queue=1.0ms idle=0.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)) [] 09:58:50.082 [debug] QUERY OK source="settings" db=0.4ms queue=1.4ms 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 [] 09:58:50.082 [debug] QUERY OK source="settings" db=0.7ms queue=1.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 [] 09:58:50.082 [debug] QUERY OK source="settings" db=0.4ms queue=1.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 [] 09:58:50.082 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.7ms 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] 09:58:50.082 [debug] QUERY OK source="settings" db=0.6ms queue=1.5ms 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 [] 09:58:50.082 [debug] QUERY OK source="settings" db=0.6ms queue=1.7ms 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 [] 09:58:50.083 [debug] QUERY OK source="settings" db=0.3ms queue=1.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 [] 09:58:50.083 [debug] QUERY OK source="settings" db=0.2ms queue=0.7ms 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 [] 09:58:50.083 [debug] QUERY OK source="oban_jobs" db=0.6ms queue=1.6ms idle=0.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" = ?) [14792] 09:58:50.083 [debug] QUERY OK source="media_items" db=3.0ms queue=1.0ms idle=0.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 ? [42, 10, 0] 09:58:50.083 [debug] QUERY OK source="settings" db=0.7ms 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 [] 09:58:50.083 [debug] QUERY OK source="settings" db=0.8ms queue=1.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 [] 09:58:50.084 [debug] QUERY OK source="media_profiles" db=1.4ms queue=1.1ms 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] 09:58:50.084 [debug] QUERY OK source="settings" db=0.7ms queue=1.4ms 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 [] 09:58:50.084 [debug] QUERY OK source="sources" db=1.4ms queue=0.5ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 09:58:50.084 [debug] QUERY OK source="settings" db=0.6ms queue=0.8ms 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 [] 09:58:50.084 [info] Sent 200 in 12ms 09:58:50.085 [info] Sent 200 in 14ms 09:58:50.085 [debug] QUERY OK source="settings" db=0.7ms queue=1.4ms 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 [] 09:58:50.085 [debug] QUERY OK source="settings" db=1.0ms queue=1.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 [] 09:58:50.085 [debug] QUERY OK source="settings" db=1.2ms queue=1.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 [] 09:58:50.086 [debug] QUERY OK source="tasks" db=1.7ms queue=1.3ms idle=0.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 09:58:50.086 [debug] QUERY OK source="settings" db=0.6ms queue=1.0ms 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 [] 09:58:50.086 [debug] QUERY OK source="sources" db=1.1ms queue=1.5ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 09:58:50.087 [debug] QUERY OK source="sources" db=1.3ms queue=1.2ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:58:50.087 [debug] QUERY OK source="sources" db=1.0ms queue=0.4ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 09:58:50.087 [debug] QUERY OK source="settings" db=0.6ms queue=0.4ms 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 [] 09:58:50.087 [debug] QUERY OK source="media_items" db=1.4ms queue=1.5ms idle=0.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")))) [18] 09:58:50.087 [debug] QUERY OK source="media_profiles" db=1.3ms queue=1.5ms 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] 09:58:50.088 [info] Sent 200 in 17ms 09:58:50.088 [debug] QUERY OK source="media_items" db=0.8ms queue=1.0ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [42] 09:58:50.089 [debug] QUERY OK source="media_profiles" db=1.4ms queue=1.5ms 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] 09:58:50.089 [debug] QUERY OK source="media_profiles" db=1.3ms queue=1.4ms 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] 09:58:50.090 [debug] QUERY OK source="media_items" db=2.7ms queue=1.3ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 09:58:50.090 [debug] QUERY OK source="media_items" db=1.3ms queue=1.3ms idle=0.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] 09:58:50.090 [debug] QUERY OK source="media_items" db=2.0ms queue=0.9ms idle=0.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")))) [1] 09:58:50.091 [info] Sent 200 in 19ms 09:58:50.091 [info] Sent 200 in 20ms 09:58:50.091 [debug] QUERY OK source="media_items" db=1.2ms queue=1.9ms idle=0.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 ? [42, 10, 0] 09:58:50.092 [debug] QUERY OK source="sources" db=1.2ms queue=2.2ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:50.092 [debug] QUERY OK source="media_items" db=3.0ms queue=1.3ms idle=0.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 ? [18, 10, 0] 09:58:50.093 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 09:58:50.093 [debug] QUERY OK source="media_items" db=3.0ms idle=0.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] 09:58:50.094 [debug] QUERY OK source="media_items" db=2.8ms queue=1.1ms idle=0.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 ? [1, 10, 0] 09:58:50.094 [debug] QUERY OK source="media_items" db=2.9ms queue=1.1ms idle=0.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 ? [5, 10, 0] 09:58:50.095 [debug] QUERY OK source="media_items" db=1.6ms queue=1.1ms idle=0.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")))) [16] 09:58:50.095 [debug] QUERY OK source="sources" db=1.4ms queue=0.5ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 09:58:50.095 [info] Sent 200 in 23ms 09:58:50.096 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:58:50.096 [debug] QUERY OK source="sources" db=1.1ms queue=0.5ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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 (?,?,?,?)) [1, 5, 16, 41] 09:58:50.096 [debug] QUERY OK source="media_items" db=0.2ms queue=0.8ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [18] 09:58:50.096 [debug] QUERY OK source="media_items" db=1.5ms queue=1.3ms idle=0.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"))))) [42] 09:58:50.096 [debug] QUERY OK source="sources" db=0.4ms queue=0.6ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 09:58:50.097 [debug] QUERY OK source="media_items" db=0.4ms queue=0.3ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 09:58:50.097 [debug] QUERY OK source="media_items" db=2.2ms idle=0.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 ? [16, 10, 0] 09:58:50.097 [debug] QUERY OK source="media_items" db=0.3ms queue=0.3ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [5] 09:58:50.097 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=0.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 ? [18, 10, 0] 09:58:50.098 [debug] QUERY OK source="media_items" db=1.1ms queue=0.4ms idle=0.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 ? [1, 10, 0] 09:58:50.099 [debug] QUERY OK source="sources" db=16.2ms queue=0.8ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", 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] 09:58:50.099 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=0.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] 09:58:50.099 [debug] QUERY OK source="sources" db=0.5ms queue=0.6ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:50.099 [debug] QUERY OK source="sources" db=0.2ms queue=1.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 09:58:50.099 [debug] QUERY OK source="media_items" db=3.0ms idle=0.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 ? [42, 10, 0] 09:58:50.100 [debug] QUERY OK source="media_items" db=0.3ms idle=0.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [16] 09:58:50.100 [debug] QUERY OK source="sources" db=0.4ms idle=0.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 09:58:50.100 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=0.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 09:58:50.100 [debug] QUERY OK source="media_items" db=0.3ms idle=0.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"))))) [18] 09:58:50.100 [info] Sent 200 in 31ms 09:58:50.100 [debug] QUERY OK source="media_items" db=0.4ms idle=0.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 ? [16, 10, 0] 09:58:50.101 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=0.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"))))) [1] 09:58:50.101 [debug] QUERY OK source="media_items" db=1.0ms idle=0.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"))))) [5] 09:58:50.101 [info] Sent 200 in 32ms 09:58:50.102 [debug] QUERY OK source="sources" db=0.6ms idle=0.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 09:58:50.102 [debug] QUERY OK source="media_items" db=2.0ms idle=0.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 ? [18, 10, 0] 09:58:50.103 [info] Sent 200 in 32ms 09:58:50.103 [debug] QUERY OK source="media_items" db=0.8ms idle=0.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"))))) [16] 09:58:50.103 [debug] QUERY OK source="media_items" db=2.0ms idle=0.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 ? [1, 10, 0] 09:58:50.103 [debug] QUERY OK source="media_items" db=1.9ms idle=0.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] 09:58:50.103 [debug] QUERY OK source="media_items" db=6.1ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 09:58:50.104 [info] Sent 200 in 33ms 09:58:50.104 [debug] QUERY OK source="media_items" db=0.7ms idle=0.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 ? [16, 10, 0] 09:58:50.104 [info] Sent 200 in 33ms 09:58:50.104 [info] Sent 200 in 32ms 09:58:50.105 [debug] QUERY OK source="media_items" db=1.0ms idle=0.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] 09:58:50.105 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 09:58:50.106 [info] Sent 200 in 36ms 09:58:52.223 [info] GET /.json 09:58:52.223 [debug] QUERY OK source="settings" db=0.1ms idle=668.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:52.223 [debug] QUERY OK source="settings" db=0.1ms 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 [] 09:58:52.223 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 09:58:52.224 [error] #PID<0.189179.0> running PinchflatWeb.Endpoint (connection #PID<0.189058.0>, stream id 14) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.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 / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189179.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br"}, {"accept-language", "en-US,en;q=0.9"}, {"cache-control", "max-age=0"}, {"host", "pinchflat.econ.llc"}, {"sec-ch-ua", "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\""}, {"sec-ch-ua-mobile", "?0"}, {"sec-ch-ua-platform", "\"Windows\""}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-fetch-user", "?1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "45.88.138.44"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFA8To0GQpu9bQAAFGI"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "via" => "2.0 Caddy", "x-forwarded-for" => "45.88.138.44", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 14, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189058.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 38742}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip, deflate, br", "accept-language" => "en-US,en;q=0.9", "cache-control" => "max-age=0", "host" => "pinchflat.econ.llc", "sec-ch-ua" => "\"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"", "sec-ch-ua-mobile" => "?0", "sec-ch-ua-platform" => "\"Windows\"", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-fetch-user" => "?1", "upgrade-insecure-requests" => "1", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) App (truncated) 09:59:00.143 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 09:59:00.341 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 09:59:30.341 [info] {"source":"oban","duration":553,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:00:00.144 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:00:00.343 [info] {"source":"oban","duration":623,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:00:30.344 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:01:00.145 [info] {"source":"oban","duration":130,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:01:00.345 [info] {"source":"oban","duration":651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:01:22.598 [info] GET / 10:01:22.598 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:01:22.598 [debug] QUERY OK source="settings" db=0.1ms idle=1044.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:01:22.599 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1044.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:01:22.599 [debug] QUERY OK source="sources" db=0.0ms idle=1044.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:01:22.601 [debug] QUERY OK source="media_items" db=2.6ms idle=1044.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:01:22.602 [debug] QUERY OK source="media_items" db=0.7ms idle=804.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:01:22.603 [debug] QUERY OK source="settings" db=0.0ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:22.603 [debug] QUERY OK source="settings" db=0.0ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:22.603 [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 [] 10:01:22.604 [debug] QUERY OK source="tasks" db=0.1ms idle=2.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 10:01:22.605 [debug] QUERY OK source="media_items" db=0.8ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:01:22.605 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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] 10:01:22.606 [debug] QUERY OK source="sources" db=0.1ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 10:01:22.612 [debug] QUERY OK source="media_items" db=5.0ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:01:22.613 [debug] QUERY OK source="media_items" db=0.5ms idle=8.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] 10:01:22.613 [debug] QUERY OK source="sources" db=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" IN (?,?,?)) [42, 18, 16] 10:01:22.614 [info] Sent 200 in 16ms 10:01:30.345 [info] {"source":"oban","duration":541,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:01:44.458 [info] GET / 10:01:44.458 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:01:44.458 [debug] QUERY OK source="settings" db=0.1ms idle=1903.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:44.458 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1904.0ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:01:44.458 [debug] QUERY OK source="sources" db=0.0ms idle=1636.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:01:44.461 [debug] QUERY OK source="media_items" db=2.5ms idle=904.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:01:44.462 [debug] QUERY OK source="media_items" db=0.7ms idle=638.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:01:44.462 [debug] QUERY OK source="settings" db=0.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:44.462 [debug] QUERY OK source="settings" db=0.0ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:44.462 [debug] QUERY OK source="settings" db=0.0ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:01:44.463 [debug] QUERY OK source="tasks" db=0.1ms idle=1.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"] 10:01:44.464 [debug] QUERY OK source="media_items" db=0.7ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:01:44.464 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 10:01:44.465 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 10:01:44.471 [debug] QUERY OK source="media_items" db=4.7ms 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 (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:01:44.472 [debug] QUERY OK source="media_items" db=0.5ms idle=7.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] 10:01:44.472 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 10:01:44.473 [info] Sent 200 in 15ms 10:02:00.146 [info] {"source":"oban","duration":140,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:02:00.347 [info] {"source":"oban","duration":590,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:02:30.348 [info] {"source":"oban","duration":537,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:03:00.147 [info] {"source":"oban","duration":142,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:03:00.329 [info] GET /.env 10:03:00.330 [debug] QUERY OK source="settings" db=0.1ms idle=775.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:03:00.330 [debug] QUERY OK source="settings" db=0.0ms idle=775.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:03:00.330 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:03:00.330 [error] #PID<0.189209.0> running PinchflatWeb.Endpoint (connection #PID<0.189208.0>, stream id 1) terminated Server: pinchflat.econ.llc: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.189208.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44438}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "141.98.11.171", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189209.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "141.98.11.171"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFBKv6Da8ECuKIAQCGC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189208.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44438}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "141.98.11.171", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189208.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44438}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "141.98.11.171", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189209.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "141.98.11.171"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFBKv6Da8ECuKIAQCGC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy. (truncated) 10:03:00.349 [info] {"source":"oban","duration":553,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:03:00.440 [info] GET /.env 10:03:00.440 [debug] QUERY OK source="settings" db=0.1ms idle=535.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:03:00.440 [debug] QUERY OK source="settings" db=0.0ms idle=292.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:03:00.440 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:03:00.441 [error] #PID<0.189210.0> running PinchflatWeb.Endpoint (connection #PID<0.189208.0>, stream id 2) terminated Server: pinchflat.econ.llc: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.189208.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44438}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "141.98.11.171", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189210.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "141.98.11.171"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFBKwUUtJZLrikAQCIC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189208.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44438}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "141.98.11.171", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189208.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44438}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "141.98.11.171", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189210.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "141.98.11.171"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFBKwUUtJZLrikAQCIC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy. (truncated) 10:03:30.349 [info] {"source":"oban","duration":534,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:04:00.148 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:04:00.350 [info] {"source":"oban","duration":530,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:04:30.352 [info] {"source":"oban","duration":651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:05:00.149 [info] {"source":"oban","duration":144,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:05:00.353 [info] {"source":"oban","duration":677,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:05:30.354 [info] {"source":"oban","duration":555,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:06:00.150 [info] {"source":"oban","duration":275,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:06:00.355 [info] {"source":"oban","duration":544,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:06:30.135 [info] {"args":{"id":43},"id":14783,"meta":{},"system_time":1783778790135627517,"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:06:30.137 [debug] QUERY OK source="sources" db=1.7ms idle=581.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:06:30.139 [debug] QUERY OK source="settings" db=1.7ms idle=583.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:06:30.141 [debug] QUERY OK source="media_items" db=1.8ms idle=585.3ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [43] 10:06:30.143 [debug] QUERY OK source="media_items" db=1.7ms idle=13.5ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 10:06:30.143 [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] 10:06:30.144 [debug] QUERY OK source="settings" db=0.0ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:30.144 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:30.146 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 10:06:30.146 [debug] Current batch of media processed. Will check again in 1000ms 10:06:30.147 [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 [] 10:06:30.147 [debug] QUERY OK source="settings" db=0.0ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:30.147 [debug] QUERY OK source="settings" db=0.0ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:06:30.147 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLnU_xhH1pUoGhTGy5mbSChlwcup7JcTr9 --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Lexus - Transmission Fluid/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:2160,+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/ab/b3/abb327293c835c34f7fbd828c863568448a9389c3e50deca0200300e014a35c5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:06:30.356 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:06:31.147 [debug] Current batch of media processed. Will check again in 1000ms 10:06:32.148 [debug] Current batch of media processed. Will check again in 1000ms 10:06:33.149 [debug] Current batch of media processed. Will check again in 1000ms 10:06:34.150 [debug] Current batch of media processed. Will check again in 1000ms 10:06:35.151 [debug] Current batch of media processed. Will check again in 1000ms 10:06:36.152 [debug] Current batch of media processed. Will check again in 1000ms 10:06:37.153 [debug] Current batch of media processed. Will check again in 1000ms 10:06:38.154 [debug] Current batch of media processed. Will check again in 1000ms 10:06:39.155 [debug] Current batch of media processed. Will check again in 1000ms 10:06:40.156 [debug] Current batch of media processed. Will check again in 1000ms 10:06:41.157 [debug] Current batch of media processed. Will check again in 1000ms 10:06:42.158 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "*for best video quality watch in 1080p*\nInstagram\nhttps://www.instagram.com/thehawkeyegarage/\nFacebook\nhttps://www.facebook.com/thehawkeyegarage\nEmail\nhawkeyeskunkworks@gmail.com\n#hawkeyegarage \nTrans fluid:\nhttps://www.amazon.com/dp/B07M94B6V6?psc=1&ref=ppx_yo2ov_dt_b_product_details", "duration" => 570, "filename" => "/downloads/Lexus - Transmission Fluid/2023-12-17 GX Transmission Fluid Change/GX Transmission Fluid Change [OEeGmVsYIlk].mp4", "id" => "OEeGmVsYIlk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OEeGmVsYIlk", "playlist_index" => 1, "timestamp" => 1702836016, "title" => "GX Transmission Fluid Change", "upload_date" => "20231217"} 10:06:42.159 [debug] QUERY OK source="sources" db=0.1ms idle=604.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 10:06:42.159 [debug] QUERY OK source="sources" db=0.1ms idle=604.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:06:42.159 [debug] QUERY OK source="media_items" db=0.1ms idle=604.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-17 18:00:16Z], 43] 10:06:42.160 [debug] QUERY OK source="media_items" db=0.5ms idle=605.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["*for best video quality watch in 1080p*\nInstagram\nhttps://www.instagram.com/thehawkeyegarage/\nFacebook\nhttps://www.facebook.com/thehawkeyegarage\nEmail\nhawkeyeskunkworks@gmail.com\n#hawkeyegarage \nTrans fluid:\nhttps://www.amazon.com/dp/B07M94B6V6?psc=1&ref=ppx_yo2ov_dt_b_product_details", "GX Transmission Fluid Change", "983739eb-a105-49f7-a20e-bc31e1e91ac5", 43, [], 570, false, "OEeGmVsYIlk", "https://www.youtube.com/watch?v=OEeGmVsYIlk", 1, "/downloads/Lexus - Transmission Fluid/2023-12-17 GX Transmission Fluid Change/GX Transmission Fluid Change [OEeGmVsYIlk].mp4", false, false, false, 1, ~U[2023-12-17 18:00:16Z], ~U[2026-07-11 14:06:42Z], ~U[2026-07-11 14:06:42Z], "*for best video quality watch in 1080p*\nInstagram\nhttps://www.instagram.com/thehawkeyegarage/\nFacebook\nhttps://www.facebook.com/thehawkeyegarage\nEmail\nhawkeyeskunkworks@gmail.com\n#hawkeyegarage \nTrans fluid:\nhttps://www.amazon.com/dp/B07M94B6V6?psc=1&ref=ppx_yo2ov_dt_b_product_details", "GX Transmission Fluid Change", 43, 570, false, "OEeGmVsYIlk", "https://www.youtube.com/watch?v=OEeGmVsYIlk", "/downloads/Lexus - Transmission Fluid/2023-12-17 GX Transmission Fluid Change/GX Transmission Fluid Change [OEeGmVsYIlk].mp4", false, ~U[2023-12-17 18:00:16Z]] 10:06:42.160 [debug] QUERY OK source="sources" db=0.1ms idle=20.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:06:42.160 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:06:42.161 [debug] QUERY OK source="media_items" db=0.2ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22206] 10:06:42.161 [debug] Current batch of media processed. Will check again in 1000ms 10:06:43.162 [debug] Current batch of media processed. Will check again in 1000ms 10:06:44.163 [debug] Current batch of media processed. Will check again in 1000ms 10:06:45.164 [debug] Current batch of media processed. Will check again in 1000ms 10:06:46.165 [debug] Current batch of media processed. Will check again in 1000ms 10:06:47.166 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A Toyota master diagnostic technician explains step by step how to change your toyota sealed transmission CVT transmission and new 8 speed transmission! \n\nPlease read the notes in the description that's applicable to your Toyota transmission. Leave a comment or email if you have any questions.\n\nIn this video I will go over how the sealed transmission works, Also how to drain the fluid and add new toyota transmission fluid. Also I will go over the 3 ways to adjust the toyota sealed transmission fluid level.\n\nThis applies to all Toyota models without a dipstick. If you own a 2014 2015 2016 2017 2018 2019 2020 corolla with a CVT transmission it's the same procedure just make sure you use the correct genuine Toyota CVT FE fluid.\n\nThis also applies to Toyota's new 8 speed transmission in many models including 2017-2020 highlander 2017-2020 Sienna 2018-2020 Camry 2019-2020 Rav4 and more.\n\nNotes on 8 speed transmission:\n\n- The drain plug that I showed in the picture in the video is gonna be a 10mm hex and the overflow tube will still be a 6mm hex socket.\n-The cooler bypass will be located between the transmission and the radiator, you have to remove the front driver's side splash sheild to access it (10mm screws and clips) Also this only applies to some 2017-2020 highlander and 2017-2020 sienna models. If your highlander or sienna doesn't have it then skip the cooler bypass part.\n\nNotes on some tundra and sequioa models.\n-Some of these models will have 2 drains on the transmission pan. one is going to be a drain plug and the other will be the overflow tube. so drain the one then tighten it then use the other plug to adjust the fluid.\n-The cooler bypass will be available on some of them located by the transmission on the passenger side. \n-The fill plug will be located on the driver's side of the transmission also a 24mm bolt.\n\nNotes on some Tacoma models.\n- Some Tacoma models will use the A\\T OIL TEMP light instead of the D or Drive light.\n\nThis procedure does NOT work on the following models:\n2020-2021 Supra. Any toyota with a dipstick. All scion IA and Yaris IA and the new yaris hatchback. Scion FRS and Toyota 86. All hybrid models.\n\nTools needed:\n-10mm socket for panel removal.\n-21mm socket for wheel removal.\n-6mm HEX socket.\n-10mm HEX socket (only for 8 speed transmission)\n-drain pan\n-a container with quart measurments\n-a fluid pump( one used in the video linked below)\n-Small jumper wire.\n-Temp gun if using this method (linked below)\n- 4 jack stands and jack if lifting the car off the ground.\n\nParts needed\n-For CVT transmissions use Genuine CVT FE transmission fluid. It's sold in a 4L container.\n-For WS transmissions use genuine WS fluid. They are sold in 1 quart bottles.\n-2 washers (or 3) for the drain and fill plugs.\n\nFluid transfer pump can be bought below:\nhttps://www.amazon.com/dp/B00329VL3G/ref=cm_sw_em_r_mt_dp_L9FnFbHZ2SM1X\n\nInfrared Temperature gun:\nhttps://www.amazon.com/dp/B00DMI632G/ref=cm_sw_em_r_mt_dp_d.FnFbQGC9Q80\n\nLinks to helpful videos:\n\nLink to my video discussing transmission fluid types:\nhttps://www.youtube.com/watch?v=OJZLMIl6XPo\n\nAftermarket fluids :\nI do not endorse nor recommend the use of any aftermarket transmission fluid in any Toyota WS and especially CVT transmissions. If you choose to use a non original fluid you are doing so at your own risk! Always shop around for best deals and prices from the dealership or online for original parts.\n\n\n\nSong: x50 - Miss U\nMusic provided by Vlog No Copyright Music.\nVideo Link: https://youtu.be/4lMXI0qnyrg", "duration" => 1078, "filename" => "/downloads/Lexus - Transmission Fluid/2020-08-14 How to change your Toyota Sealed Transmission Fluid/How to change your Toyota Sealed Transmission Fluid [eRxSu4-4ojo].mp4", "id" => "eRxSu4-4ojo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eRxSu4-4ojo", "playlist_index" => 2, "timestamp" => 1597417212, "title" => "How to change your Toyota Sealed Transmission Fluid", "upload_date" => "20200814"} 10:06:47.167 [debug] QUERY OK source="sources" db=0.1ms idle=1612.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 10:06:47.167 [debug] QUERY OK source="sources" db=0.1ms idle=1612.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:06:47.167 [debug] QUERY OK source="media_items" db=0.0ms idle=1612.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-08-14 15:00:12Z], 43] 10:06:47.169 [debug] QUERY OK source="media_items" db=1.1ms idle=1023.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A Toyota master diagnostic technician explains step by step how to change your toyota sealed transmission CVT transmission and new 8 speed transmission! \n\nPlease read the notes in the description that's applicable to your Toyota transmission. Leave a comment or email if you have any questions.\n\nIn this video I will go over how the sealed transmission works, Also how to drain the fluid and add new toyota transmission fluid. Also I will go over the 3 ways to adjust the toyota sealed transmission fluid level.\n\nThis applies to all Toyota models without a dipstick. If you own a 2014 2015 2016 2017 2018 2019 2020 corolla with a CVT transmission it's the same procedure just make sure you use the correct genuine Toyota CVT FE fluid.\n\nThis also applies to Toyota's new 8 speed transmission in many models including 2017-2020 highlander 2017-2020 Sienna 2018-2020 Camry 2019-2020 Rav4 and more.\n\nNotes on 8 speed transmission:\n\n- The drain plug that I showed in the picture in the video is gonna be a 10mm hex and the overflow tube will still be a 6mm hex socket.\n-The cooler bypass will be located between the transmission and the radiator, you have to remove the front driver's side splash sheild to access it (10mm screws and clips) Also this only applies to some 2017-2020 highlander and 2017-2020 sienna models. If your highlander or sienna doesn't have it then skip the cooler bypass part.\n\nNotes on some tundra and sequioa models.\n-Some of these models will have 2 drains on the transmission pan. one is going to be a drain plug and the other will be the overflow tube. so drain the one then tighten it then use the other plug to adjust the fluid.\n-The cooler bypass will be available on some of them located by the transmission on the passenger side. \n-The fill plug will be located on the driver's side of the transmission also a 24mm bolt.\n\nNotes on some Tacoma models.\n- Some Tacoma models will use the A\\T OIL TEMP light instead of the D or Drive light.\n\nThis procedure does NOT work on the following models:\n2020-2021 Supra. Any toyota with a dipstick. All scion IA and Yaris IA and the new yaris hatchback. Scion FRS and Toyota 86. All hybrid models.\n\nTools needed:\n-10mm socket for panel removal.\n-21mm socket for wheel removal.\n-6mm HEX socket.\n-10mm HEX socket (only for 8 speed transmission)\n-drain pan\n-a container with quart measurments\n-a fluid pump( one used in the video linked below)\n-Small jumper wire.\n-Temp gun if using this method (linked below)\n- 4 jack stands and jack if lifting the car off the ground.\n\nParts needed\n-For CVT transmissions use Genuine CVT FE transmission fluid. It's sold in a 4L container.\n-For WS transmissions use genuine WS fluid. They are sold in 1 quart bottles.\n-2 washers (or 3) for the drain and fill plugs.\n\nFluid transfer pump can be bought below:\nhttps://www.amazon.com/dp/B00329VL3G/ref=cm_sw_em_r_mt_dp_L9FnFbHZ2SM1X\n\nInfrared Temperature gun:\nhttps://www.amazon.com/dp/B00DMI632G/ref=cm_sw_em_r_mt_dp_d.FnFbQGC9Q80\n\nLinks to helpful videos:\n\nLink to my video discussing transmission fluid types:\nhttps://www.youtube.com/watch?v=OJZLMIl6XPo\n\nAftermarket fluids :\nI do not endorse nor recommend the use of any aftermarket transmission fluid in any Toyota WS and especially CVT transmissions. If you choose to use a non original fluid you are doing so at your own risk! Always shop around for best deals and prices from the dealership or online for original parts.\n\n\n\nSong: x50 - Miss U\nMusic provided by Vlog No Copyright Music.\nVideo Link: https://youtu.be/4lMXI0qnyrg", "How to change your Toyota Sealed Transmission Fluid", "4e87ca2d-8a63-4af0-981c-c0e5ca5d7b9f", 43, [], 1078, false, "eRxSu4-4ojo", "https://www.youtube.com/watch?v=eRxSu4-4ojo", 2, "/downloads/Lexus - Transmission Fluid/2020-08-14 How to change your Toyota Sealed Transmission Fluid/How to change your Toyota Sealed Transmission Fluid [eRxSu4-4ojo].mp4", false, false, false, 1, ~U[2020-08-14 15:00:12Z], ~U[2026-07-11 14:06:47Z], ~U[2026-07-11 14:06:47Z], "A Toyota master diagnostic technician explains step by step how to change your toyota sealed transmission CVT transmission and new 8 speed transmission! \n\nPlease read the notes in the description that's applicable to your Toyota transmission. Leave a comment or email if you have any questions.\n\nIn this video I will go over how the sealed transmission works, Also how to drain the fluid and add new toyota transmission fluid. Also I will go over the 3 ways to adjust the toyota sealed transmission fluid level.\n\nThis applies to all Toyota models without a dipstick. If you own a 2014 2015 2016 2017 2018 2019 2020 corolla with a CVT transmission it's the same procedure just make sure you use the correct genuine Toyota CVT FE fluid.\n\nThis also applies to Toyota's new 8 speed transmission in many models including 2017-2020 highlander 2017-2020 Sienna 2018-2020 Camry 2019-2020 Rav4 and more.\n\nNotes on 8 speed transmission:\n\n- The drain plug that I showed in the picture in the video is gonna be a 10mm hex and the overflow tube will still be a 6mm hex socket.\n-The cooler bypass will be located between the transmission and the radiator, you have to remove the front driver's side splash sheild to access it (10mm screws and clips) Also this only applies to some 2017-2020 highlander and 2017-2020 sienna models. If your highlander or sienna doesn't have it then skip the cooler bypass part.\n\nNotes on some tundra and sequioa models.\n-Some of these models will have 2 drains on the transmission pan. one is going to be a drain plug and the other will be the overflow tube. so drain the one then tighten it then use the other plug to adjust the fluid.\n-The cooler bypass will be available on some of them located by the transmission on the passenger side. \n-The fill plug will be located on the driver's side of the transmission also a 24mm bolt.\n\nNotes on some Tacoma models.\n- Some Tacoma models will use the A\\T OIL TEMP light instead of the D or Drive light.\n\nThis procedure does NOT work on the following models:\n2020-2021 Supra. Any toyota with a dipstick. All scion IA and Yaris IA and the new yaris hatchback. Scion FRS and Toyota 86. All hybrid models.\n\nTools needed:\n-10mm socket for panel removal.\n-21mm socket for wheel removal.\n-6mm HEX socket.\n-10mm HEX socket (only for 8 speed transmission)\n-drain pan\n-a container with quart measurments\n-a fluid pump( one used in the video linked below)\n-Small jumper wire.\n-Temp gun if using this method (linked below)\n- 4 jack stands and jack if lifting the car off the ground.\n\nParts needed\n-For CVT transmissions use Genuine CVT FE transmission fluid. It's sold in a 4L container.\n-For WS transmissions use genuine WS fluid. They are sold in 1 quart bottles.\n-2 washers (or 3) for the drain and fill plugs.\n\nFluid transfer pump can be bought below:\nhttps://www.amazon.com/dp/B00329VL3G/ref=cm_sw_em_r_mt_dp_L9FnFbHZ2SM1X\n\nInfrared Temperature gun:\nhttps://www.amazon.com/dp/B00DMI632G/ref=cm_sw_em_r_mt_dp_d.FnFbQGC9Q80\n\nLinks to helpful videos:\n\nLink to my video discussing transmission fluid types:\nhttps://www.youtube.com/watch?v=OJZLMIl6XPo\n\nAftermarket fluids :\nI do not endorse nor recommend the use of any aftermarket transmission fluid in any Toyota WS and especially CVT transmissions. If you choose to use (truncated) 10:06:47.169 [debug] QUERY OK source="sources" db=0.1ms idle=24.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:06:47.170 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:06:47.170 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22207] 10:06:47.170 [debug] Current batch of media processed. Will check again in 1000ms 10:06:48.171 [debug] Current batch of media processed. Will check again in 1000ms 10:06:49.172 [debug] Current batch of media processed. Will check again in 1000ms 10:06:50.173 [debug] Current batch of media processed. Will check again in 1000ms 10:06:51.174 [debug] Current batch of media processed. Will check again in 1000ms 10:06:52.069 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLnU_xhH1pUoGhTGy5mbSChlwcup7JcTr9 --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Lexus - Transmission Fluid/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:2160,+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/ab/b3/abb327293c835c34f7fbd828c863568448a9389c3e50deca0200300e014a35c5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 10:06:52.069 [debug] Gracefully stopping file follower 10:06:52.070 [debug] QUERY OK source="sources" db=0.1ms idle=1515.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [43] 10:06:52.070 [debug] QUERY OK source="sources" db=0.1ms idle=1515.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:06:52.070 [debug] QUERY OK source="media_items" db=0.1ms idle=1516.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-17 18:00:16Z], 43] 10:06:52.073 [debug] QUERY OK source="media_items" db=2.3ms idle=1516.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["*for best video quality watch in 1080p*\nInstagram\nhttps://www.instagram.com/thehawkeyegarage/\nFacebook\nhttps://www.facebook.com/thehawkeyegarage\nEmail\nhawkeyeskunkworks@gmail.com\n#hawkeyegarage \nTrans fluid:\nhttps://www.amazon.com/dp/B07M94B6V6?psc=1&ref=ppx_yo2ov_dt_b_product_details", "GX Transmission Fluid Change", "7d6fce66-fa1a-4c69-9b72-5e9b847c47d6", 43, [], 570, false, "OEeGmVsYIlk", "https://www.youtube.com/watch?v=OEeGmVsYIlk", 1, "/downloads/Lexus - Transmission Fluid/2023-12-17 GX Transmission Fluid Change/GX Transmission Fluid Change [OEeGmVsYIlk].mp4", false, false, false, 1, ~U[2023-12-17 18:00:16Z], ~U[2026-07-11 14:06:52Z], ~U[2026-07-11 14:06:52Z], "*for best video quality watch in 1080p*\nInstagram\nhttps://www.instagram.com/thehawkeyegarage/\nFacebook\nhttps://www.facebook.com/thehawkeyegarage\nEmail\nhawkeyeskunkworks@gmail.com\n#hawkeyegarage \nTrans fluid:\nhttps://www.amazon.com/dp/B07M94B6V6?psc=1&ref=ppx_yo2ov_dt_b_product_details", "GX Transmission Fluid Change", 43, 570, false, "OEeGmVsYIlk", "https://www.youtube.com/watch?v=OEeGmVsYIlk", "/downloads/Lexus - Transmission Fluid/2023-12-17 GX Transmission Fluid Change/GX Transmission Fluid Change [OEeGmVsYIlk].mp4", false, ~U[2023-12-17 18:00:16Z]] 10:06:52.073 [debug] QUERY OK source="sources" db=0.2ms idle=924.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [43] 10:06:52.074 [debug] QUERY OK source="media_items" db=0.1ms 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[2020-08-14 15:00:12Z], 43] 10:06:52.076 [debug] QUERY OK source="media_items" db=1.3ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A Toyota master diagnostic technician explains step by step how to change your toyota sealed transmission CVT transmission and new 8 speed transmission! \n\nPlease read the notes in the description that's applicable to your Toyota transmission. Leave a comment or email if you have any questions.\n\nIn this video I will go over how the sealed transmission works, Also how to drain the fluid and add new toyota transmission fluid. Also I will go over the 3 ways to adjust the toyota sealed transmission fluid level.\n\nThis applies to all Toyota models without a dipstick. If you own a 2014 2015 2016 2017 2018 2019 2020 corolla with a CVT transmission it's the same procedure just make sure you use the correct genuine Toyota CVT FE fluid.\n\nThis also applies to Toyota's new 8 speed transmission in many models including 2017-2020 highlander 2017-2020 Sienna 2018-2020 Camry 2019-2020 Rav4 and more.\n\nNotes on 8 speed transmission:\n\n- The drain plug that I showed in the picture in the video is gonna be a 10mm hex and the overflow tube will still be a 6mm hex socket.\n-The cooler bypass will be located between the transmission and the radiator, you have to remove the front driver's side splash sheild to access it (10mm screws and clips) Also this only applies to some 2017-2020 highlander and 2017-2020 sienna models. If your highlander or sienna doesn't have it then skip the cooler bypass part.\n\nNotes on some tundra and sequioa models.\n-Some of these models will have 2 drains on the transmission pan. one is going to be a drain plug and the other will be the overflow tube. so drain the one then tighten it then use the other plug to adjust the fluid.\n-The cooler bypass will be available on some of them located by the transmission on the passenger side. \n-The fill plug will be located on the driver's side of the transmission also a 24mm bolt.\n\nNotes on some Tacoma models.\n- Some Tacoma models will use the A\\T OIL TEMP light instead of the D or Drive light.\n\nThis procedure does NOT work on the following models:\n2020-2021 Supra. Any toyota with a dipstick. All scion IA and Yaris IA and the new yaris hatchback. Scion FRS and Toyota 86. All hybrid models.\n\nTools needed:\n-10mm socket for panel removal.\n-21mm socket for wheel removal.\n-6mm HEX socket.\n-10mm HEX socket (only for 8 speed transmission)\n-drain pan\n-a container with quart measurments\n-a fluid pump( one used in the video linked below)\n-Small jumper wire.\n-Temp gun if using this method (linked below)\n- 4 jack stands and jack if lifting the car off the ground.\n\nParts needed\n-For CVT transmissions use Genuine CVT FE transmission fluid. It's sold in a 4L container.\n-For WS transmissions use genuine WS fluid. They are sold in 1 quart bottles.\n-2 washers (or 3) for the drain and fill plugs.\n\nFluid transfer pump can be bought below:\nhttps://www.amazon.com/dp/B00329VL3G/ref=cm_sw_em_r_mt_dp_L9FnFbHZ2SM1X\n\nInfrared Temperature gun:\nhttps://www.amazon.com/dp/B00DMI632G/ref=cm_sw_em_r_mt_dp_d.FnFbQGC9Q80\n\nLinks to helpful videos:\n\nLink to my video discussing transmission fluid types:\nhttps://www.youtube.com/watch?v=OJZLMIl6XPo\n\nAftermarket fluids :\nI do not endorse nor recommend the use of any aftermarket transmission fluid in any Toyota WS and especially CVT transmissions. If you choose to use a non original fluid you are doing so at your own risk! Always shop around for best deals and prices from the dealership or online for original parts.\n\n\n\nSong: x50 - Miss U\nMusic provided by Vlog No Copyright Music.\nVideo Link: https://youtu.be/4lMXI0qnyrg", "How to change your Toyota Sealed Transmission Fluid", "d7f31deb-76f6-4e0e-a949-970346956797", 43, [], 1078, false, "eRxSu4-4ojo", "https://www.youtube.com/watch?v=eRxSu4-4ojo", 2, "/downloads/Lexus - Transmission Fluid/2020-08-14 How to change your Toyota Sealed Transmission Fluid/How to change your Toyota Sealed Transmission Fluid [eRxSu4-4ojo].mp4", false, false, false, 1, ~U[2020-08-14 15:00:12Z], ~U[2026-07-11 14:06:52Z], ~U[2026-07-11 14:06:52Z], "A Toyota master diagnostic technician explains step by step how to change your toyota sealed transmission CVT transmission and new 8 speed transmission! \n\nPlease read the notes in the description that's applicable to your Toyota transmission. Leave a comment or email if you have any questions.\n\nIn this video I will go over how the sealed transmission works, Also how to drain the fluid and add new toyota transmission fluid. Also I will go over the 3 ways to adjust the toyota sealed transmission fluid level.\n\nThis applies to all Toyota models without a dipstick. If you own a 2014 2015 2016 2017 2018 2019 2020 corolla with a CVT transmission it's the same procedure just make sure you use the correct genuine Toyota CVT FE fluid.\n\nThis also applies to Toyota's new 8 speed transmission in many models including 2017-2020 highlander 2017-2020 Sienna 2018-2020 Camry 2019-2020 Rav4 and more.\n\nNotes on 8 speed transmission:\n\n- The drain plug that I showed in the picture in the video is gonna be a 10mm hex and the overflow tube will still be a 6mm hex socket.\n-The cooler bypass will be located between the transmission and the radiator, you have to remove the front driver's side splash sheild to access it (10mm screws and clips) Also this only applies to some 2017-2020 highlander and 2017-2020 sienna models. If your highlander or sienna doesn't have it then skip the cooler bypass part.\n\nNotes on some tundra and sequioa models.\n-Some of these models will have 2 drains on the transmission pan. one is going to be a drain plug and the other will be the overflow tube. so drain the one then tighten it then use the other plug to adjust the fluid.\n-The cooler bypass will be available on some of them located by the transmission on the passenger side. \n-The fill plug will be located on the driver's side of the transmission also a 24mm bolt.\n\nNotes on some Tacoma models.\n- Some Tacoma models will use the A\\T OIL TEMP light instead of the D or Drive light.\n\nThis procedure does NOT work on the following models:\n2020-2021 Supra. Any toyota with a dipstick. All scion IA and Yaris IA and the new yaris hatchback. Scion FRS and Toyota 86. All hybrid models.\n\nTools needed:\n-10mm socket for panel removal.\n-21mm socket for wheel removal.\n-6mm HEX socket.\n-10mm HEX socket (only for 8 speed transmission)\n-drain pan\n-a container with quart measurments\n-a fluid pump( one used in the video linked below)\n-Small jumper wire.\n-Temp gun if using this method (linked below)\n- 4 jack stands and jack if lifting the car off the ground.\n\nParts needed\n-For CVT transmissions use Genuine CVT FE transmission fluid. It's sold in a 4L container.\n-For WS transmissions use genuine WS fluid. They are sold in 1 quart bottles.\n-2 washers (or 3) for the drain and fill plugs.\n\nFluid transfer pump can be bought below:\nhttps://www.amazon.com/dp/B00329VL3G/ref=cm_sw_em_r_mt_dp_L9FnFbHZ2SM1X\n\nInfrared Temperature gun:\nhttps://www.amazon.com/dp/B00DMI632G/ref=cm_sw_em_r_mt_dp_d.FnFbQGC9Q80\n\nLinks to helpful videos:\n\nLink to my video discussing transmission fluid types:\nhttps://www.youtube.com/watch?v=OJZLMIl6XPo\n\nAftermarket fluids :\nI do not endorse nor recommend the use of any aftermarket transmission fluid in any Toyota WS and especially CVT transmissions. If you choose to use a n (truncated) 10:06:52.076 [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" = ?) [43] 10:06:52.076 [debug] QUERY OK source="media_items" db=0.1ms 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[2021-07-24 15:45:00Z], 43] 10:06:52.078 [debug] QUERY OK source="media_items" db=1.1ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A Toyota master diagnostic explains Toyota Trucks sealed transmission fluid replacement WITHOUT a scan tool using the Fluid temperature check mode built in most Toyota trucks with overflow type transmissions.\n\nIn this video we revisit the Toyota sealed transmission fluid replacement procedure without a scan tool.\n\nMany folks dislike the dipstick less Toyota transmissions. And while a dipstick is much easier, once you watch this video and practice the procedure you'll realize how easy it is to do this. You'll need very basic tools, some time to practice the procedure and a bigger wallet to carry the cash you save from paying a shop to do this!\n\nI always recommend that you use Toyota original fluid. Almost all Toyota and Lexus sealed transmissions use Toyota WS ATF fluid. Some of them will say Life Time fluid. That from experience is not very accurate and some of these transmissions start having issues as they age and have more miles. Play it safe and change this fluid every 60,000 miles or 6 years.\n\nThe tools you'll need for this job :\n- 14mm socket\n-5mm hex socket\n-small piece of wire\n-graduated bucket or pan to capture the fluid and measure it.\n-fluid transfer pump\n\nMost Toyota and Lexus trucks are high off the ground enough where most folks will be able to do this without lifting the truck. However if you need to lift it make sure it's on a level surface and all 4 corners of the truck are lifted to make sure the level is accurate.\n\nOn Sequoia, Tundra and LX570 models don't forget to bypass the external transmission cooler thermostat if equipped!\n\nIf you are watching this video and you don't own a Toyota truck but own another Toyota or Lexus model with a sealed transmission, Review this older video I made on sealed transmissions.\nhttps://www.youtube.com/watch?v=eRxSu4-4ojo\n\nDo this job right and check the fluid level, I don't recommend you use the temp gun method as I explained in the video because it's highly inaccurate in Toyota trucks.\n\nFollow the channel on Social Media :\nhttp://www.facebook.com/thecarcarenut\nhttp://www.instagram.com/thecarcarenut\n\nCheck out the channel Merch store\nhttps://www.youtube.com/channel/UCEKt2bUDBoRUw3wpPpDOUaA/store\n\nSupport the channel on Patreon:\nhttp://www.patreon.com/thecarcarenut\n\nMake a one time donation to the channel:\nhttp://www.paypal.me/CCNdonate\n\nCheck out the amazon store:\nhttp://www.amazon.com/shop/thecarcarenut\n*as an Amazon associate, I earn from qualifying purchases.\n\n#thecarcarenut #toyotatrucks #toyota\n\n0:00 Intro\n0:35 Overview\n2:10 Fluid Drain\n4:44 Fluid Fill\n5:45 Fluid level check", "Toyota Trucks Sealed Transmission Fluid Replacement WITHOUT a scan tool", "5ff48884-ae16-4c97-a0e6-51ffab9ff84f", 43, [], 808, false, "NUAuGmDGntY", "https://www.youtube.com/watch?v=NUAuGmDGntY", 3, "/downloads/Lexus - Transmission Fluid/2021-07-24 Toyota Trucks Sealed Transmission Fluid Replacement WITHOUT a scan tool/Toyota Trucks Sealed Transmission Fluid Replacement WITHOUT a scan tool [NUAuGmDGntY].mkv", false, false, false, 1, ~U[2021-07-24 15:45:00Z], ~U[2026-07-11 14:06:52Z], ~U[2026-07-11 14:06:52Z], "A Toyota master diagnostic explains Toyota Trucks sealed transmission fluid replacement WITHOUT a scan tool using the Fluid temperature check mode built in most Toyota trucks with overflow type transmissions.\n\nIn this video we revisit the Toyota sealed transmission fluid replacement procedure without a scan tool.\n\nMany folks dislike the dipstick less Toyota transmissions. And while a dipstick is much easier, once you watch this video and practice the procedure you'll realize how easy it is to do this. You'll need very basic tools, some time to practice the procedure and a bigger wallet to carry the cash you save from paying a shop to do this!\n\nI always recommend that you use Toyota original fluid. Almost all Toyota and Lexus sealed transmissions use Toyota WS ATF fluid. Some of them will say Life Time fluid. That from experience is not very accurate and some of these transmissions start having issues as they age and have more miles. Play it safe and change this fluid every 60,000 miles or 6 years.\n\nThe tools you'll need for this job :\n- 14mm socket\n-5mm hex socket\n-small piece of wire\n-graduated bucket or pan to capture the fluid and measure it.\n-fluid transfer pump\n\nMost Toyota and Lexus trucks are high off the ground enough where most folks will be able to do this without lifting the truck. However if you need to lift it make sure it's on a level surface and all 4 corners of the truck are lifted to make sure the level is accurate.\n\nOn Sequoia, Tundra and LX570 models don't forget to bypass the external transmission cooler thermostat if equipped!\n\nIf you are watching this video and you don't own a Toyota truck but own another Toyota or Lexus model with a sealed transmission, Review this older video I made on sealed transmissions.\nhttps://www.youtube.com/watch?v=eRxSu4-4ojo\n\nDo this job right and check the fluid level, I don't recommend you use the temp gun method as I explained in the video because it's highly inaccurate in Toyota trucks.\n\nFollow the channel on Social Media :\nhttp://www.facebook.com/thecarcarenut\nhttp://www.instagram.com/thecarcarenut\n\nCheck out the channel Merch store\nhttps://www.youtube.com/channel/UCEKt2bUDBoRUw3wpPpDOUaA/store\n\nSupport the channel on Patreon:\nhttp://www.patreon.com/thecarcarenut\n\nMake a one time donation to the channel:\nhttp://www.paypal.me/CCNdonate\n\nCheck out the amazon store:\nhttp://www.amazon.com/shop/thecarcarenut\n*as an Amazon associate, I earn from qualifying purchases.\n\n#thecarcarenut #toyotatrucks #toyota\n\n0:00 Intro\n0:35 Overview\n2:10 Fluid Drain\n4:44 Fluid Fill\n5:45 Fluid level check", "Toyota Trucks Sealed Transmission Fluid Replacement WITHOUT a scan tool", 43, 808, false, "NUAuGmDGntY", "https://www.youtube.com/watch?v=NUAuGmDGntY", "/downloads/Lexus - Transmission Fluid/2021-07-24 Toyota Trucks Sealed Transmission Fluid Replacement WITHOUT a scan tool/Toyota Trucks Sealed Transmission Fluid Replacement WITHOUT a scan tool [NUAuGmDGntY].mkv", false, ~U[2021-07-24 15:45:00Z]] 10:06:52.078 [debug] QUERY OK source="sources" db=0.1ms idle=4.3ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-07-11 14:06:52Z], ~U[2026-07-11 14:06:52Z], 43] 10:06:52.079 [debug] QUERY OK source="media_items" db=0.3ms idle=3.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [43] 10:06:52.079 [debug] QUERY OK source="media_items" db=0.2ms idle=2.9ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [43] 10:06:52.079 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [43] 10:06:52.080 [debug] QUERY OK source="tasks" db=0.1ms idle=1.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [14815, 43, ~U[2026-07-11 14:06:52Z], ~U[2026-07-11 14:06:52Z]] 10:06:52.081 [info] {"args":{"id":43},"id":14783,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":21945258,"event":"job:stop","queue_time":89085,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 10:07:00.151 [info] {"source":"oban","duration":157,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:07:00.357 [info] {"source":"oban","duration":675,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:07:04.536 [info] GET / 10:07:04.536 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:07:04.537 [debug] QUERY OK source="settings" db=0.1ms idle=982.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:07:04.537 [debug] QUERY OK source="media_profiles" db=0.0ms idle=982.6ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:07:04.537 [debug] QUERY OK source="sources" db=0.0ms idle=982.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:07:04.546 [debug] QUERY OK source="media_items" db=9.1ms idle=982.9ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:07:04.547 [debug] QUERY OK source="media_items" db=0.9ms idle=383.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:07:04.548 [debug] QUERY OK source="settings" db=0.0ms idle=10.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:04.548 [debug] QUERY OK source="settings" db=0.0ms idle=10.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:07:04.548 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:07:04.549 [debug] QUERY OK source="tasks" db=0.1ms 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"] 10:07:04.550 [debug] QUERY OK source="media_items" db=0.6ms 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 (NOT (m0."media_filepath" IS NULL)) [] 10:07:04.550 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 10:07:04.550 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 10:07:04.562 [debug] QUERY OK source="media_items" db=10.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 (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:07:04.563 [debug] QUERY OK source="media_items" db=0.6ms idle=13.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] 10:07:04.563 [debug] QUERY OK source="sources" db=0.1ms idle=13.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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 (?,?,?)) [42, 18, 16] 10:07:04.564 [info] Sent 200 in 28ms 10:07:30.358 [info] {"source":"oban","duration":592,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:08:00.152 [info] {"source":"oban","duration":215,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:08:00.359 [info] {"source":"oban","duration":589,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:08:30.359 [info] {"source":"oban","duration":575,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:09:00.153 [info] {"source":"oban","duration":139,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:09:00.361 [info] {"source":"oban","duration":636,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:09:10.691 [info] GET / 10:09:10.691 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:09:10.692 [info] GET / 10:09:10.692 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:09:10.692 [debug] QUERY OK source="settings" db=0.1ms idle=1137.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:09:10.692 [debug] QUERY OK source="settings" db=0.0ms idle=1137.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:09:10.692 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1137.8ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:09:10.692 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1137.9ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:09:10.692 [debug] QUERY OK source="sources" db=0.0ms idle=388.4ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:09:10.692 [debug] QUERY OK source="sources" db=0.1ms idle=0.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:09:10.705 [debug] QUERY OK source="media_items" db=12.1ms idle=0.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:09:10.705 [debug] QUERY OK source="media_items" db=12.3ms idle=0.2ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:09:10.706 [debug] QUERY OK source="media_items" db=1.3ms idle=12.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:09:10.706 [debug] QUERY OK source="media_items" db=1.4ms idle=12.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:09:10.706 [debug] QUERY OK source="settings" db=0.1ms idle=13.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:10.706 [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 [] 10:09:10.707 [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 [] 10:09:10.707 [debug] QUERY OK source="settings" db=0.1ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:10.707 [debug] QUERY OK source="settings" db=0.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 [] 10:09:10.707 [debug] QUERY OK source="settings" db=0.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 [] 10:09:10.708 [debug] QUERY OK source="tasks" db=0.3ms idle=1.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"] 10:09:10.708 [debug] QUERY OK source="tasks" db=0.3ms idle=0.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"] 10:09:10.709 [debug] QUERY OK source="media_items" db=0.7ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:09:10.709 [debug] QUERY OK source="media_items" db=1.0ms idle=1.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:09:10.710 [debug] QUERY OK source="media_items" db=0.5ms idle=1.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 10:09:10.710 [debug] QUERY OK source="media_items" db=0.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 INNER 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] 10:09:10.710 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 10:09:10.710 [debug] QUERY OK source="sources" db=0.1ms idle=1.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 10:09:10.716 [debug] QUERY OK source="media_items" db=4.9ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:09:10.716 [debug] QUERY OK source="media_items" db=4.8ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:09:10.717 [debug] QUERY OK source="media_items" db=1.0ms idle=6.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] 10:09:10.718 [debug] QUERY OK source="media_items" db=1.1ms idle=6.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 10:09:10.718 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 10:09:10.718 [debug] QUERY OK source="sources" db=0.1ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 10:09:10.719 [info] Sent 200 in 27ms 10:09:10.719 [info] Sent 200 in 27ms 10:09:13.559 [info] GET / 10:09:13.559 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:09:13.559 [debug] QUERY OK source="settings" db=0.1ms idle=1004.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:09:13.559 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1005.0ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:09:13.559 [debug] QUERY OK source="sources" db=0.0ms idle=1005.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:09:13.562 [debug] QUERY OK source="media_items" db=2.7ms idle=1005.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:09:13.564 [debug] QUERY OK source="media_items" db=1.2ms idle=255.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:09:13.564 [debug] QUERY OK source="settings" db=0.1ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:13.564 [debug] QUERY OK source="settings" db=0.0ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:13.564 [debug] QUERY OK source="settings" db=0.0ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:13.565 [debug] QUERY OK source="tasks" db=0.1ms 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"] 10:09:13.566 [debug] QUERY OK source="media_items" db=0.6ms 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 (NOT (m0."media_filepath" IS NULL)) [] 10:09:13.566 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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] 10:09:13.567 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 10:09:13.573 [debug] QUERY OK source="media_items" db=4.8ms 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 (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:09:13.573 [debug] QUERY OK source="media_items" db=0.5ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 10:09:13.574 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 10:09:13.575 [info] Sent 200 in 16ms 10:09:13.958 [info] GET / 10:09:13.958 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:09:13.959 [debug] QUERY OK source="settings" db=0.1ms idle=392.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:09:13.959 [debug] QUERY OK source="media_profiles" db=0.0ms idle=392.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:09:13.959 [debug] QUERY OK source="sources" db=0.0ms idle=386.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:09:13.962 [debug] QUERY OK source="media_items" db=2.7ms idle=385.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:09:13.963 [debug] QUERY OK source="media_items" db=0.7ms idle=388.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:09:13.963 [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 [] 10:09:13.963 [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 [] 10:09:13.963 [debug] QUERY OK source="settings" db=0.0ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:09:13.964 [debug] QUERY OK source="tasks" db=0.1ms idle=2.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"] 10:09:13.965 [debug] QUERY OK source="media_items" db=0.7ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:09:13.965 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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] 10:09:13.966 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 10:09:13.972 [debug] QUERY OK source="media_items" db=4.9ms 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 (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:09:13.973 [debug] QUERY OK source="media_items" db=0.5ms idle=8.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 10:09:13.973 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 10:09:13.974 [info] Sent 200 in 15ms 10:09:30.361 [info] {"source":"oban","duration":568,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:10:00.154 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:10:00.363 [info] {"source":"oban","duration":713,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 10:10:30.364 [info] {"source":"oban","duration":557,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:10:51.297 [info] GET / 10:10:51.297 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:10:51.297 [debug] QUERY OK source="settings" db=0.1ms idle=1743.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:10:51.297 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1743.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:10:51.297 [debug] QUERY OK source="sources" db=0.0ms idle=1743.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:10:51.306 [debug] QUERY OK source="media_items" db=8.4ms idle=1743.4ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:10:51.307 [debug] QUERY OK source="media_items" db=1.2ms idle=894.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:10:51.308 [debug] QUERY OK source="settings" db=0.0ms idle=10.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:51.308 [debug] QUERY OK source="settings" db=0.0ms idle=10.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:51.308 [debug] QUERY OK source="settings" db=0.0ms idle=10.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:10:51.309 [debug] QUERY OK source="tasks" db=0.1ms 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"] 10:10:51.310 [debug] QUERY OK source="media_items" db=0.7ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:10:51.310 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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] 10:10:51.311 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 10:10:51.322 [debug] QUERY OK source="media_items" db=10.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 (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:10:51.323 [debug] QUERY OK source="media_items" db=0.5ms idle=13.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 10:10:51.323 [debug] QUERY OK source="sources" db=0.1ms idle=13.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 10:10:51.325 [info] Sent 200 in 27ms 10:11:00.155 [info] {"source":"oban","duration":290,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:11:00.365 [info] {"source":"oban","duration":693,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:11:30.365 [info] {"source":"oban","duration":608,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:11:45.965 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 10:12:00.156 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:12:00.367 [info] {"source":"oban","duration":581,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:12:30.367 [info] {"source":"oban","duration":560,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:13:00.157 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:13:00.369 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:13:30.370 [info] {"source":"oban","duration":603,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:14:00.158 [info] {"source":"oban","duration":247,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:14:00.371 [info] {"source":"oban","duration":637,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:14:30.372 [info] {"source":"oban","duration":593,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:15:00.159 [info] {"source":"oban","duration":242,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:15:00.373 [info] {"source":"oban","duration":653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:15:30.374 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:16:00.160 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:16:00.375 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:16:30.376 [info] {"source":"oban","duration":639,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:17:00.161 [info] {"source":"oban","duration":159,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:17:00.377 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:17:30.378 [info] {"source":"oban","duration":584,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:18:00.162 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:18:00.379 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:18:30.379 [info] {"source":"oban","duration":561,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:19:00.163 [info] {"source":"oban","duration":254,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:19:00.381 [info] {"source":"oban","duration":610,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:19:30.382 [info] {"source":"oban","duration":588,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:20:00.164 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:20:00.383 [info] {"source":"oban","duration":617,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:20:30.383 [info] {"source":"oban","duration":532,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:21:00.165 [info] {"source":"oban","duration":177,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:21:00.385 [info] {"source":"oban","duration":612,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:21:07.858 [info] GET / 10:21:07.858 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:21:07.858 [debug] QUERY OK source="settings" db=0.1ms idle=800.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:21:07.858 [debug] QUERY OK source="media_profiles" db=0.0ms idle=304.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:21:07.859 [debug] QUERY OK source="sources" db=0.0ms idle=304.5ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:21:07.862 [debug] QUERY OK source="media_items" db=3.1ms idle=304.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:21:07.863 [debug] QUERY OK source="media_items" db=0.9ms idle=307.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:21:07.863 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:21:07.863 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:21:07.864 [debug] QUERY OK source="settings" db=0.0ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:21:07.864 [debug] QUERY OK source="tasks" db=0.1ms 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"] 10:21:07.865 [debug] QUERY OK source="media_items" db=0.6ms 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 (NOT (m0."media_filepath" IS NULL)) [] 10:21:07.865 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 10:21:07.866 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 10:21:07.872 [debug] QUERY OK source="media_items" db=5.0ms 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 (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:21:07.873 [debug] QUERY OK source="media_items" db=0.5ms idle=7.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] 10:21:07.873 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 10:21:07.874 [info] Sent 200 in 16ms 10:21:30.385 [info] {"source":"oban","duration":555,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:21:45.996 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 10:22:00.166 [info] {"source":"oban","duration":175,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:22:00.386 [info] {"source":"oban","duration":537,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:22:30.388 [info] {"source":"oban","duration":633,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:22:45.999 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 10:23:00.167 [info] {"source":"oban","duration":174,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:23:00.389 [info] {"source":"oban","duration":660,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:23:30.389 [info] {"source":"oban","duration":558,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:24:00.168 [info] {"source":"oban","duration":134,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:24:00.391 [info] {"source":"oban","duration":586,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:24:30.392 [info] {"source":"oban","duration":628,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:25:00.169 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:25:00.393 [info] {"source":"oban","duration":715,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:25:30.393 [info] {"source":"oban","duration":537,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:26:00.170 [info] {"source":"oban","duration":137,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:26:00.395 [info] {"source":"oban","duration":529,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:26:30.396 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:27:00.171 [info] {"source":"oban","duration":300,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:27:00.397 [info] {"source":"oban","duration":681,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:27:30.398 [info] {"source":"oban","duration":632,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:28:00.172 [info] {"source":"oban","duration":151,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:28:00.399 [info] {"source":"oban","duration":540,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:28:30.400 [info] {"source":"oban","duration":607,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:29:00.173 [info] {"source":"oban","duration":248,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:29:00.400 [info] {"source":"oban","duration":566,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:29:30.401 [info] {"source":"oban","duration":537,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:30:00.174 [info] {"source":"oban","duration":297,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:30:00.403 [info] {"source":"oban","duration":601,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:30:30.404 [info] {"source":"oban","duration":568,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:31:00.175 [info] {"source":"oban","duration":297,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:31:00.405 [info] {"source":"oban","duration":633,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:31:30.406 [info] {"source":"oban","duration":616,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:32:00.176 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:32:00.407 [info] {"source":"oban","duration":886,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:32:30.409 [info] {"source":"oban","duration":577,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:33:00.177 [info] {"source":"oban","duration":314,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:33:00.409 [info] {"source":"oban","duration":530,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:33:30.410 [info] {"source":"oban","duration":549,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:34:00.178 [info] {"source":"oban","duration":304,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:34:00.412 [info] {"source":"oban","duration":616,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:34:30.413 [info] {"source":"oban","duration":942,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:35:00.179 [info] {"source":"oban","duration":307,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:35:00.414 [info] {"source":"oban","duration":535,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:35:30.416 [info] {"source":"oban","duration":986,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:35:46.038 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 10:36:00.180 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:36:00.418 [info] {"source":"oban","duration":926,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:36:30.420 [info] {"source":"oban","duration":537,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:36:46.042 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 10:37:00.181 [info] {"source":"oban","duration":108,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:37:00.421 [info] {"source":"oban","duration":596,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:37:30.422 [info] {"source":"oban","duration":614,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:38:00.182 [info] {"source":"oban","duration":146,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:38:00.423 [info] {"source":"oban","duration":568,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:38:30.423 [info] {"source":"oban","duration":548,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:39:00.183 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:39:00.425 [info] {"source":"oban","duration":640,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:39:30.426 [info] {"source":"oban","duration":934,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:40:00.184 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:40:00.428 [info] {"source":"oban","duration":578,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:40:30.429 [info] {"source":"oban","duration":522,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:40:46.054 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 10:41:00.185 [info] {"source":"oban","duration":302,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:41:00.430 [info] {"source":"oban","duration":646,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:41:30.431 [info] {"source":"oban","duration":589,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:42:00.186 [info] {"source":"oban","duration":133,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:42:00.432 [info] {"source":"oban","duration":585,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:42:30.432 [info] {"source":"oban","duration":560,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:43:00.187 [info] {"source":"oban","duration":143,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:43:00.434 [info] {"source":"oban","duration":975,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 10:43:30.436 [info] {"source":"oban","duration":991,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:44:00.188 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:44:00.438 [info] {"source":"oban","duration":561,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:44:30.438 [info] {"source":"oban","duration":538,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:45:00.189 [info] {"source":"oban","duration":139,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:45:00.440 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:45:30.441 [info] {"source":"oban","duration":651,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:46:00.190 [info] {"source":"oban","duration":319,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:46:00.441 [info] {"source":"oban","duration":541,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:46:30.443 [info] {"source":"oban","duration":1055,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:46:36.869 [info] {"args":{"id":44},"id":14784,"meta":{},"system_time":1783781196869555134,"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:46:36.870 [debug] QUERY OK source="sources" db=0.2ms idle=1315.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:46:36.870 [debug] QUERY OK source="settings" db=0.1ms idle=1315.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:46:36.870 [debug] QUERY OK source="media_items" db=0.2ms idle=1010.3ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [44] 10:46:36.870 [debug] QUERY OK source="media_items" db=0.1ms idle=9.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [44] 10:46:36.871 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:46:36.871 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:46:36.871 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:46:36.871 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 10:46:36.871 [debug] Current batch of media processed. Will check again in 1000ms 10:46:36.871 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:46:36.872 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:46:36.872 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:46:36.872 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLnU_xhH1pUoEnwgZ6xWo9JRG7XE4aadUf --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Lexus - Coolant Valley Leak/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:2160,+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/68/ac/68ac98a335298621ff756ae6969f4e8232d076aade098c38ed9ca0aa3f54a147.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:46:37.872 [debug] Current batch of media processed. Will check again in 1000ms 10:46:38.873 [debug] Current batch of media processed. Will check again in 1000ms 10:46:39.874 [debug] Current batch of media processed. Will check again in 1000ms 10:46:40.875 [debug] Current batch of media processed. Will check again in 1000ms 10:46:41.876 [debug] Current batch of media processed. Will check again in 1000ms 10:46:42.877 [debug] Current batch of media processed. Will check again in 1000ms 10:46:43.878 [debug] Current batch of media processed. Will check again in 1000ms 10:46:44.879 [debug] Current batch of media processed. Will check again in 1000ms 10:46:45.880 [debug] Current batch of media processed. Will check again in 1000ms 10:46:46.881 [debug] Current batch of media processed. Will check again in 1000ms 10:46:47.882 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Follow along with me as I reassemble the top end of my GX460’s engine and re-seal the leaking valley cover plate. We’ll walk though the process and take in some tips and tricks along the way.", "duration" => 1607, "filename" => "/downloads/Lexus - Coolant Valley Leak/2024-01-07 GX460 Valley Cover Plate Leak Fix/GX460 Valley Cover Plate Leak Fix [gpZ639EpIvU].mp4", "id" => "gpZ639EpIvU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gpZ639EpIvU", "playlist_index" => 1, "timestamp" => 1704603025, "title" => "GX460 Valley Cover Plate Leak Fix", "upload_date" => "20240107"} 10:46:47.882 [debug] QUERY OK source="sources" db=0.1ms idle=1328.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [44] 10:46:47.883 [debug] QUERY OK source="sources" db=0.1ms idle=1328.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:46:47.883 [debug] QUERY OK source="media_items" db=0.1ms idle=1328.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-07 04:50:25Z], 44] 10:46:47.884 [debug] QUERY OK source="media_items" db=0.4ms idle=1008.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Follow along with me as I reassemble the top end of my GX460’s engine and re-seal the leaking valley cover plate. We’ll walk though the process and take in some tips and tricks along the way.", "GX460 Valley Cover Plate Leak Fix", "1bf986a7-49b7-496e-b023-2967d202a9d7", 44, [], 1607, false, "gpZ639EpIvU", "https://www.youtube.com/watch?v=gpZ639EpIvU", 1, "/downloads/Lexus - Coolant Valley Leak/2024-01-07 GX460 Valley Cover Plate Leak Fix/GX460 Valley Cover Plate Leak Fix [gpZ639EpIvU].mp4", false, false, false, 1, ~U[2024-01-07 04:50:25Z], ~U[2026-07-11 14:46:47Z], ~U[2026-07-11 14:46:47Z], "Follow along with me as I reassemble the top end of my GX460’s engine and re-seal the leaking valley cover plate. We’ll walk though the process and take in some tips and tricks along the way.", "GX460 Valley Cover Plate Leak Fix", 44, 1607, false, "gpZ639EpIvU", "https://www.youtube.com/watch?v=gpZ639EpIvU", "/downloads/Lexus - Coolant Valley Leak/2024-01-07 GX460 Valley Cover Plate Leak Fix/GX460 Valley Cover Plate Leak Fix [gpZ639EpIvU].mp4", false, ~U[2024-01-07 04:50:25Z]] 10:46:47.884 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:46:47.884 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:46:47.885 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22211] 10:46:47.885 [debug] Current batch of media processed. Will check again in 1000ms 10:46:48.885 [debug] Current batch of media processed. Will check again in 1000ms 10:46:49.886 [debug] Current batch of media processed. Will check again in 1000ms 10:46:50.887 [debug] Current batch of media processed. Will check again in 1000ms 10:46:51.888 [debug] Current batch of media processed. Will check again in 1000ms 10:46:52.889 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "", "duration" => 531, "filename" => "/downloads/Lexus - Coolant Valley Leak/2020-08-20 Coolant leak at block upper part ( Land cruiser EX.R)/Coolant leak at block upper part ( Land cruiser EX.R) [Y5p8y8mxT8g].mp4", "id" => "Y5p8y8mxT8g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Y5p8y8mxT8g", "playlist_index" => 2, "timestamp" => 1597945455, "title" => "Coolant leak at block upper part ( Land cruiser EX.R)", "upload_date" => "20200820"} 10:46:52.889 [debug] QUERY OK source="sources" db=0.1ms idle=1335.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [44] 10:46:52.890 [debug] QUERY OK source="sources" db=0.1ms idle=1335.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:46:52.890 [debug] QUERY OK source="media_items" db=0.1ms idle=1335.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-08-20 17:44:15Z], 44] 10:46:52.890 [debug] QUERY OK source="media_items" db=0.3ms idle=1008.5ms INSERT INTO "media_items" AS m0 ("title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Coolant leak at block upper part ( Land cruiser EX.R)", "7823b228-5e92-4dea-bf88-dc3b2acc85e4", 44, [], 531, false, "Y5p8y8mxT8g", "https://www.youtube.com/watch?v=Y5p8y8mxT8g", 2, "/downloads/Lexus - Coolant Valley Leak/2020-08-20 Coolant leak at block upper part ( Land cruiser EX.R)/Coolant leak at block upper part ( Land cruiser EX.R) [Y5p8y8mxT8g].mp4", false, false, false, 1, ~U[2020-08-20 17:44:15Z], ~U[2026-07-11 14:46:52Z], ~U[2026-07-11 14:46:52Z], "", "Coolant leak at block upper part ( Land cruiser EX.R)", 44, 531, false, "Y5p8y8mxT8g", "https://www.youtube.com/watch?v=Y5p8y8mxT8g", "/downloads/Lexus - Coolant Valley Leak/2020-08-20 Coolant leak at block upper part ( Land cruiser EX.R)/Coolant leak at block upper part ( Land cruiser EX.R) [Y5p8y8mxT8g].mp4", false, ~U[2020-08-20 17:44:15Z]] 10:46:52.891 [debug] QUERY OK source="sources" db=0.1ms idle=7.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:46:52.891 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:46:52.891 [debug] QUERY OK source="media_items" db=0.1ms idle=1.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 [22212] 10:46:52.891 [debug] Current batch of media processed. Will check again in 1000ms 10:46:53.892 [debug] Current batch of media processed. Will check again in 1000ms 10:46:54.893 [debug] Current batch of media processed. Will check again in 1000ms 10:46:55.894 [debug] Current batch of media processed. Will check again in 1000ms 10:46:56.895 [debug] Current batch of media processed. Will check again in 1000ms 10:46:57.896 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Resealing the heat exchanger plate under the intake manifold on a Tundra 5.7", "duration" => 1349, "filename" => "/downloads/Lexus - Coolant Valley Leak/2021-03-20 TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE/TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE [PnUL0GR6mfs].mp4", "id" => "PnUL0GR6mfs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PnUL0GR6mfs", "playlist_index" => 3, "timestamp" => 1616236204, "title" => "TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE", "upload_date" => "20210320"} 10:46:57.897 [debug] QUERY OK source="sources" db=0.3ms idle=1342.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [44] 10:46:57.897 [debug] QUERY OK source="sources" db=0.1ms idle=1343.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:46:57.898 [debug] QUERY OK source="media_items" db=0.1ms idle=1343.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-20 10:30:04Z], 44] 10:46:57.898 [debug] QUERY OK source="media_items" db=0.4ms idle=1008.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Resealing the heat exchanger plate under the intake manifold on a Tundra 5.7", "TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE", "f0770fa2-4a35-4827-b77b-695314beff47", 44, [], 1349, false, "PnUL0GR6mfs", "https://www.youtube.com/watch?v=PnUL0GR6mfs", 3, "/downloads/Lexus - Coolant Valley Leak/2021-03-20 TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE/TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE [PnUL0GR6mfs].mp4", false, false, false, 1, ~U[2021-03-20 10:30:04Z], ~U[2026-07-11 14:46:57Z], ~U[2026-07-11 14:46:57Z], "Resealing the heat exchanger plate under the intake manifold on a Tundra 5.7", "TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE", 44, 1349, false, "PnUL0GR6mfs", "https://www.youtube.com/watch?v=PnUL0GR6mfs", "/downloads/Lexus - Coolant Valley Leak/2021-03-20 TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE/TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE [PnUL0GR6mfs].mp4", false, ~U[2021-03-20 10:30:04Z]] 10:46:57.898 [debug] QUERY OK source="sources" db=0.1ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:46:57.899 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:46:57.899 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22213] 10:46:57.899 [debug] Current batch of media processed. Will check again in 1000ms 10:46:58.900 [debug] Current batch of media processed. Will check again in 1000ms 10:46:59.901 [debug] Current batch of media processed. Will check again in 1000ms 10:47:00.191 [info] {"source":"oban","duration":136,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:47:00.445 [info] {"source":"oban","duration":1116,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:47:00.902 [debug] Current batch of media processed. Will check again in 1000ms 10:47:01.903 [debug] Current batch of media processed. Will check again in 1000ms 10:47:02.905 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Learn how to use RTV to make a rear differential gasket, waterpump gasket, oil pan gasket, thermostat gasket, valve cover gasket, or whatever needs a gasket but you cant find a gasket. Using this method will help make sure you seal whatever you are working on, properly. If you dont use the RTV gasket maker correctly then you can get a leak and all that hard work was for nothing. \n\nHere is the RTV I used: https://amzlink.to/az0iSFOJybcUI\n\n**If the video was helpful, remember to give it a \"thumbs up\" and consider subscribing. New videos every Thursday**\n\n-As an Amazon Associate I earn from qualifying purchases.\n-Website: https://www.ChrisFixed.com\n-Facebook: https://www.facebook.com/chrisfix8\n-Twitter: https://twitter.com/ChrisFixed\n-Instagram: https://instagram.com/chrisfixit\n-Subscribe Here: http://www.youtube.com/subscription_center?add_user=paintballoo7\n-YouTube Channel: https://www.youtube.com/ChrisFix\n\nDisclaimer:\nDue to factors beyond the control of ChrisFix, I cannot guarantee against improper use or unauthorized modifications of this information. ChrisFix assumes no liability for property damage or injury incurred as a result of any of the information contained in this video. Use this information at your own risk. ChrisFix recommends safe practices when working on vehicles and or with tools seen or implied in this video. Due to factors beyond the control of ChrisFix, no information contained in this video shall create any expressed or implied warranty or guarantee of any particular result. Any injury, damage, or loss that may result from improper use of these tools, equipment, or from the information contained in this video is the sole responsibility of the user and not ChrisFix.", "duration" => 317, "filename" => "/downloads/Lexus - Coolant Valley Leak/2013-11-10 How to use RTV and properly make a gasket/How to use RTV and properly make a gasket [21CvanhKILA].mp4", "id" => "21CvanhKILA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=21CvanhKILA", "playlist_index" => 4, "timestamp" => 1384111638, "title" => "How to use RTV and properly make a gasket", "upload_date" => "20131110"} 10:47:02.905 [debug] QUERY OK source="sources" db=0.1ms idle=1350.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [44] 10:47:02.905 [debug] QUERY OK source="sources" db=0.1ms idle=1351.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:02.905 [debug] QUERY OK source="media_items" db=0.1ms idle=1351.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2013-11-10 19:27:18Z], 44] 10:47:02.907 [debug] QUERY OK source="media_items" db=1.5ms idle=1011.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Learn how to use RTV to make a rear differential gasket, waterpump gasket, oil pan gasket, thermostat gasket, valve cover gasket, or whatever needs a gasket but you cant find a gasket. Using this method will help make sure you seal whatever you are working on, properly. If you dont use the RTV gasket maker correctly then you can get a leak and all that hard work was for nothing. \n\nHere is the RTV I used: https://amzlink.to/az0iSFOJybcUI\n\n**If the video was helpful, remember to give it a \"thumbs up\" and consider subscribing. New videos every Thursday**\n\n-As an Amazon Associate I earn from qualifying purchases.\n-Website: https://www.ChrisFixed.com\n-Facebook: https://www.facebook.com/chrisfix8\n-Twitter: https://twitter.com/ChrisFixed\n-Instagram: https://instagram.com/chrisfixit\n-Subscribe Here: http://www.youtube.com/subscription_center?add_user=paintballoo7\n-YouTube Channel: https://www.youtube.com/ChrisFix\n\nDisclaimer:\nDue to factors beyond the control of ChrisFix, I cannot guarantee against improper use or unauthorized modifications of this information. ChrisFix assumes no liability for property damage or injury incurred as a result of any of the information contained in this video. Use this information at your own risk. ChrisFix recommends safe practices when working on vehicles and or with tools seen or implied in this video. Due to factors beyond the control of ChrisFix, no information contained in this video shall create any expressed or implied warranty or guarantee of any particular result. Any injury, damage, or loss that may result from improper use of these tools, equipment, or from the information contained in this video is the sole responsibility of the user and not ChrisFix.", "How to use RTV and properly make a gasket", "e117a02e-c6fd-4723-8031-1a74b8c40e5d", 44, [], 317, false, "21CvanhKILA", "https://www.youtube.com/watch?v=21CvanhKILA", 4, "/downloads/Lexus - Coolant Valley Leak/2013-11-10 How to use RTV and properly make a gasket/How to use RTV and properly make a gasket [21CvanhKILA].mp4", false, false, false, 1, ~U[2013-11-10 19:27:18Z], ~U[2026-07-11 14:47:02Z], ~U[2026-07-11 14:47:02Z], "Learn how to use RTV to make a rear differential gasket, waterpump gasket, oil pan gasket, thermostat gasket, valve cover gasket, or whatever needs a gasket but you cant find a gasket. Using this method will help make sure you seal whatever you are working on, properly. If you dont use the RTV gasket maker correctly then you can get a leak and all that hard work was for nothing. \n\nHere is the RTV I used: https://amzlink.to/az0iSFOJybcUI\n\n**If the video was helpful, remember to give it a \"thumbs up\" and consider subscribing. New videos every Thursday**\n\n-As an Amazon Associate I earn from qualifying purchases.\n-Website: https://www.ChrisFixed.com\n-Facebook: https://www.facebook.com/chrisfix8\n-Twitter: https://twitter.com/ChrisFixed\n-Instagram: https://instagram.com/chrisfixit\n-Subscribe Here: http://www.youtube.com/subscription_center?add_user=paintballoo7\n-YouTube Channel: https://www.youtube.com/ChrisFix\n\nDisclaimer:\nDue to factors beyond the control of ChrisFix, I cannot guarantee against improper use or unauthorized modifications of this information. ChrisFix assumes no liability for property damage or injury incurred as a result of any of the information contained in this video. Use this information at your own risk. ChrisFix recommends safe practices when working on vehicles and or with tools seen or implied in this video. Due to factors beyond the control of ChrisFix, no information contained in this video shall create any expressed or implied warranty or guarantee of any particular result. Any injury, damage, or loss that may result from improper use of these tools, equipment, or from the information contained in this video is the sole responsibility of the user and not ChrisFix.", "How to use RTV and properly make a gasket", 44, 317, false, "21CvanhKILA", "https://www.youtube.com/watch?v=21CvanhKILA", "/downloads/Lexus - Coolant Valley Leak/2013-11-10 How to use RTV and properly make a gasket/How to use RTV and properly make a gasket [21CvanhKILA].mp4", false, ~U[2013-11-10 19:27:18Z]] 10:47:02.908 [debug] QUERY OK source="sources" db=0.1ms idle=11.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:02.908 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:47:02.909 [debug] QUERY OK source="media_items" db=0.5ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22214] 10:47:02.909 [debug] Current batch of media processed. Will check again in 1000ms 10:47:03.909 [debug] Current batch of media processed. Will check again in 1000ms 10:47:04.910 [debug] Current batch of media processed. Will check again in 1000ms 10:47:05.911 [debug] Current batch of media processed. Will check again in 1000ms 10:47:06.912 [debug] Current batch of media processed. Will check again in 1000ms 10:47:07.913 [debug] Current batch of media processed. Will check again in 1000ms 10:47:08.914 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Greg's Repair Shop in McAllen, Texas was able to sort out Sandy's Valley Plate Leak problem. I hope this brief explainer helps you understand this very common issue with Lexus and Toyota coolant leak problems.", "duration" => 352, "filename" => "/downloads/Lexus - Coolant Valley Leak/2023-02-24 EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460/EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460 [8_GauylWRLM].mkv", "id" => "8_GauylWRLM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8_GauylWRLM", "playlist_index" => 5, "timestamp" => 1677279441, "title" => "EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460", "upload_date" => "20230224"} 10:47:08.915 [debug] QUERY OK source="sources" db=0.1ms idle=360.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [44] 10:47:08.915 [debug] QUERY OK source="sources" db=0.1ms idle=360.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:08.915 [debug] QUERY OK source="media_items" db=0.1ms idle=360.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-24 22:57:21Z], 44] 10:47:08.916 [debug] QUERY OK source="media_items" db=0.5ms idle=361.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Greg's Repair Shop in McAllen, Texas was able to sort out Sandy's Valley Plate Leak problem. I hope this brief explainer helps you understand this very common issue with Lexus and Toyota coolant leak problems.", "EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460", "97030a74-6ba9-4980-b21c-97caca8c4fb8", 44, [], 352, false, "8_GauylWRLM", "https://www.youtube.com/watch?v=8_GauylWRLM", 5, "/downloads/Lexus - Coolant Valley Leak/2023-02-24 EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460/EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460 [8_GauylWRLM].mkv", false, false, false, 1, ~U[2023-02-24 22:57:21Z], ~U[2026-07-11 14:47:08Z], ~U[2026-07-11 14:47:08Z], "Greg's Repair Shop in McAllen, Texas was able to sort out Sandy's Valley Plate Leak problem. I hope this brief explainer helps you understand this very common issue with Lexus and Toyota coolant leak problems.", "EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460", 44, 352, false, "8_GauylWRLM", "https://www.youtube.com/watch?v=8_GauylWRLM", "/downloads/Lexus - Coolant Valley Leak/2023-02-24 EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460/EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460 [8_GauylWRLM].mkv", false, ~U[2023-02-24 22:57:21Z]] 10:47:08.916 [debug] QUERY OK source="sources" db=0.1ms idle=11.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:08.917 [debug] QUERY OK source="media_profiles" db=0.8ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:47:08.918 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22215] 10:47:08.918 [debug] Current batch of media processed. Will check again in 1000ms 10:47:09.918 [debug] Current batch of media processed. Will check again in 1000ms 10:47:10.919 [debug] Current batch of media processed. Will check again in 1000ms 10:47:11.920 [debug] Current batch of media processed. Will check again in 1000ms 10:47:12.921 [debug] Current batch of media processed. Will check again in 1000ms 10:47:13.922 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Brian Eslick from How to Automotive http://www.howtoautomotive.com\u200B\u200B gives you auto repair tips on how to remove wire loom holders, without breaking them, on Toyota and Lexus vehicles. #short\u200B\u200Bs\n\nNew! How to Automotive T-shirts, stickers, and more! Click the link teespring.com/stores/how-to-automotive\n\nAffiliate link for How to Automotive Tool Store https://www.amazon.com/shop/howtoautomotive\n\n\nWebsite\nFor more videos, tips, and to purchase recommended tools and products visit my website at: http://www.howtoautomotive.com/\u200B\u200B\n\nStay connected at:\nEmail: howtoautomotive@gmail.com\nFacebook: https://www.facebook.com/How-to-Autom\u200B\u200B...\nGoogle+: https://plus.google.com/+HowtoAutomot\u200B\u200B... \nLinkedIn: https://www.linkedin.com/in/brian-esl\u200B\u200B...\n\n\n\n\nDisclaimer\nOwing to factors beyond the control of How to Automotive/Brian Eslick, it cannot guarantee against unauthorized modification of this information, or improper use of this information. How to Automotive/Brian Eslick assumes no liability for property damage or injury incurred as a result of any information contained in this video. How to Automotive/Brian Eslick recommends safe practice when working with power tools, automotive lifts, lifting tools, jacks and jack stands, electrical equipment, blunt instruments, chemical lubricants, or any other tools or equipment seen or implied in this video. Because of factors beyond the control of How to Automotive/Brian Eslick, no information contained in this video shall express or imply warranty or guarantee of any particular result. Any injury, damage or loss that may result from improper use of these tools, equipment, or information contained in this video is the sole responsibility of the user and not How to Automotive/Brian Eslick. #howtoautomotive\u200B\u200B #Shorts", "duration" => 44, "filename" => "/downloads/Lexus - Coolant Valley Leak/2021-02-09 How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts/How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts [gpZLU2ftDXo].mp4", "id" => "gpZLU2ftDXo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gpZLU2ftDXo", "playlist_index" => 6, "timestamp" => 1612833209, "title" => "How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts", "upload_date" => "20210209"} 10:47:13.923 [debug] QUERY OK source="sources" db=0.1ms idle=1368.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [44] 10:47:13.923 [debug] QUERY OK source="sources" db=0.1ms idle=1368.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:13.923 [debug] QUERY OK source="media_items" db=0.1ms idle=1368.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-09 01:13:29Z], 44] 10:47:13.925 [debug] QUERY OK source="media_items" db=1.4ms idle=1014.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Brian Eslick from How to Automotive http://www.howtoautomotive.com\u200B\u200B gives you auto repair tips on how to remove wire loom holders, without breaking them, on Toyota and Lexus vehicles. #short\u200B\u200Bs\n\nNew! How to Automotive T-shirts, stickers, and more! Click the link teespring.com/stores/how-to-automotive\n\nAffiliate link for How to Automotive Tool Store https://www.amazon.com/shop/howtoautomotive\n\n\nWebsite\nFor more videos, tips, and to purchase recommended tools and products visit my website at: http://www.howtoautomotive.com/\u200B\u200B\n\nStay connected at:\nEmail: howtoautomotive@gmail.com\nFacebook: https://www.facebook.com/How-to-Autom\u200B\u200B...\nGoogle+: https://plus.google.com/+HowtoAutomot\u200B\u200B... \nLinkedIn: https://www.linkedin.com/in/brian-esl\u200B\u200B...\n\n\n\n\nDisclaimer\nOwing to factors beyond the control of How to Automotive/Brian Eslick, it cannot guarantee against unauthorized modification of this information, or improper use of this information. How to Automotive/Brian Eslick assumes no liability for property damage or injury incurred as a result of any information contained in this video. How to Automotive/Brian Eslick recommends safe practice when working with power tools, automotive lifts, lifting tools, jacks and jack stands, electrical equipment, blunt instruments, chemical lubricants, or any other tools or equipment seen or implied in this video. Because of factors beyond the control of How to Automotive/Brian Eslick, no information contained in this video shall express or imply warranty or guarantee of any particular result. Any injury, damage or loss that may result from improper use of these tools, equipment, or information contained in this video is the sole responsibility of the user and not How to Automotive/Brian Eslick. #howtoautomotive\u200B\u200B #Shorts", "How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts", "c4260c69-18d9-4e67-9132-71fc8bb13bdd", 44, [], 44, false, "gpZLU2ftDXo", "https://www.youtube.com/watch?v=gpZLU2ftDXo", 6, "/downloads/Lexus - Coolant Valley Leak/2021-02-09 How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts/How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts [gpZLU2ftDXo].mp4", false, false, false, 1, ~U[2021-02-09 01:13:29Z], ~U[2026-07-11 14:47:13Z], ~U[2026-07-11 14:47:13Z], "Brian Eslick from How to Automotive http://www.howtoautomotive.com\u200B\u200B gives you auto repair tips on how to remove wire loom holders, without breaking them, on Toyota and Lexus vehicles. #short\u200B\u200Bs\n\nNew! How to Automotive T-shirts, stickers, and more! Click the link teespring.com/stores/how-to-automotive\n\nAffiliate link for How to Automotive Tool Store https://www.amazon.com/shop/howtoautomotive\n\n\nWebsite\nFor more videos, tips, and to purchase recommended tools and products visit my website at: http://www.howtoautomotive.com/\u200B\u200B\n\nStay connected at:\nEmail: howtoautomotive@gmail.com\nFacebook: https://www.facebook.com/How-to-Autom\u200B\u200B...\nGoogle+: https://plus.google.com/+HowtoAutomot\u200B\u200B... \nLinkedIn: https://www.linkedin.com/in/brian-esl\u200B\u200B...\n\n\n\n\nDisclaimer\nOwing to factors beyond the control of How to Automotive/Brian Eslick, it cannot guarantee against unauthorized modification of this information, or improper use of this information. How to Automotive/Brian Eslick assumes no liability for property damage or injury incurred as a result of any information contained in this video. How to Automotive/Brian Eslick recommends safe practice when working with power tools, automotive lifts, lifting tools, jacks and jack stands, electrical equipment, blunt instruments, chemical lubricants, or any other tools or equipment seen or implied in this video. Because of factors beyond the control of How to Automotive/Brian Eslick, no information contained in this video shall express or imply warranty or guarantee of any particular result. Any injury, damage or loss that may result from improper use of these tools, equipment, or information contained in this video is the sole responsibility of the user and not How to Automotive/Brian Eslick. #howtoautomotive\u200B\u200B #Shorts", "How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts", 44, 44, false, "gpZLU2ftDXo", "https://www.youtube.com/watch?v=gpZLU2ftDXo", "/downloads/Lexus - Coolant Valley Leak/2021-02-09 How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts/How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts [gpZLU2ftDXo].mp4", false, ~U[2021-02-09 01:13:29Z]] 10:47:13.925 [debug] QUERY OK source="sources" db=0.1ms idle=15.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:13.926 [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] 10:47:13.926 [debug] QUERY OK source="media_items" db=0.2ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22216] 10:47:13.926 [debug] Current batch of media processed. Will check again in 1000ms 10:47:14.927 [debug] Current batch of media processed. Will check again in 1000ms 10:47:15.928 [debug] Current batch of media processed. Will check again in 1000ms 10:47:16.929 [debug] Current batch of media processed. Will check again in 1000ms 10:47:17.930 [debug] Current batch of media processed. Will check again in 1000ms 10:47:18.078 [info] GET /.env 10:47:18.078 [debug] QUERY OK source="settings" db=0.1ms idle=523.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:47:18.078 [debug] QUERY OK source="settings" db=0.0ms idle=523.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:47:18.078 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:47:18.078 [error] #PID<0.189479.0> running PinchflatWeb.Endpoint (connection #PID<0.189478.0>, stream id 1) terminated Server: pinchflat.econ.llc: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.189478.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 45830}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "via" => "1.1 Caddy", "x-forwarded-for" => "160.179.166.124", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189479.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "160.179.166.124"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFDlcyljFHN8PYAVZ0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189478.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 45830}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "via" => "1.1 Caddy", "x-forwarded-for" => "160.179.166.124", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189478.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 45830}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "host" => "pinchflat.econ.llc", "via" => "1.1 Caddy", "x-forwarded-for" => "160.179.166.124", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189479.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"host", "pinchflat.econ.llc"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "160.179.166.124"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFDlcyljFHN8PYAVZ0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:c (truncated) 10:47:18.931 [debug] Current batch of media processed. Will check again in 1000ms 10:47:19.932 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A Toyota specialist fixes every common problem with Toyota's Last V8 Engine the 3UR-FE.\n\nToday we work on a 2016 Toyota Tundra to fix every common problem with it. The ticking timing chain caused by a faulty timing chain tensioner. A Front TIming cover leak, Leaking cam towers and valley plate coolant leak.\n\nTCCN Automotive Inc.\nToyota and Lexus Specialist Repair\nVisit www.tccnautomotive.com to schedule your appointment today.\n\nCheck out the second channel : \nhttps://www.youtube.com/channel/UCUPPMkXFBPr-TAAE-CV9Jlg\n\nRecommended Tools:\nBasic Scan Tool https://amzn.to/3Jm6aom\nVery good DIY Scan Tool https://amzn.to/3zF7dvH\nAdvanced Scan tool https://amzn.to/3q3L3QQ\nSpill Free Coolant Replacement Funnel https://amzn.to/3uJfKxm\nSun roof drain cleaning tool https://amzn.to/3GMDlQ9\nGood DIY Torque Wrench 1/2\" https://amzn.to/3gE9bnw\nWireless Apple CarPlay for Toyota\\Lexus https://amzn.to/3uKElSo\nVery Good Triple Camera Borescope https://amzn.to/3MrgFs0\n*as an Amazon associate, I earn from qualifying purchases.\n\nFollow the channel on Social Media :\nhttp://www.facebook.com/thecarcarenut\nhttp://www.instagram.com/thecarcarenut\n\nCheck out the channel Merch store\nhttps://www.youtube.com/channel/UCEKt2bUDBoRUw3wpPpDOUaA/store\n\nMake a one time donation to the channel:\nhttp://www.paypal.me/CCNdonate\n\nCheck out the amazon store:\nhttp://www.amazon.com/shop/thecarcarenut\n*as an Amazon associate, I earn from qualifying purchases.\n\n#tccnautomotive #thecarcarenut #toyota #toyotatundra #toyotaengine \n\n0:00 Intro\n0:36 The Plan\n1:38 Engine Tear Down\n6:44 First Common Coolant Leak\n16:05 Ticking Timing Chain Tensioner\n20:52 Cam Tower Removal\n24:50 All Common Problems Explained\n36:57 Reassembly\n57:07 First Start", "duration" => 3548, "filename" => "/downloads/Lexus - Coolant Valley Leak/2024-02-03 Fixing Every Common Problem with Toyota's Last V8 Engine/Fixing Every Common Problem with Toyota's Last V8 Engine [2bsULQcMxlg].mkv", "id" => "2bsULQcMxlg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2bsULQcMxlg", "playlist_index" => 7, "timestamp" => 1706978700, "title" => "Fixing Every Common Problem with Toyota's Last V8 Engine", "upload_date" => "20240203"} 10:47:19.933 [debug] QUERY OK source="sources" db=0.1ms idle=378.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [44] 10:47:19.933 [debug] QUERY OK source="sources" db=0.1ms idle=378.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:19.933 [debug] QUERY OK source="media_items" db=0.1ms idle=379.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-03 16:45:00Z], 44] 10:47:19.935 [debug] QUERY OK source="media_items" db=1.1ms idle=379.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A Toyota specialist fixes every common problem with Toyota's Last V8 Engine the 3UR-FE.\n\nToday we work on a 2016 Toyota Tundra to fix every common problem with it. The ticking timing chain caused by a faulty timing chain tensioner. A Front TIming cover leak, Leaking cam towers and valley plate coolant leak.\n\nTCCN Automotive Inc.\nToyota and Lexus Specialist Repair\nVisit www.tccnautomotive.com to schedule your appointment today.\n\nCheck out the second channel : \nhttps://www.youtube.com/channel/UCUPPMkXFBPr-TAAE-CV9Jlg\n\nRecommended Tools:\nBasic Scan Tool https://amzn.to/3Jm6aom\nVery good DIY Scan Tool https://amzn.to/3zF7dvH\nAdvanced Scan tool https://amzn.to/3q3L3QQ\nSpill Free Coolant Replacement Funnel https://amzn.to/3uJfKxm\nSun roof drain cleaning tool https://amzn.to/3GMDlQ9\nGood DIY Torque Wrench 1/2\" https://amzn.to/3gE9bnw\nWireless Apple CarPlay for Toyota\\Lexus https://amzn.to/3uKElSo\nVery Good Triple Camera Borescope https://amzn.to/3MrgFs0\n*as an Amazon associate, I earn from qualifying purchases.\n\nFollow the channel on Social Media :\nhttp://www.facebook.com/thecarcarenut\nhttp://www.instagram.com/thecarcarenut\n\nCheck out the channel Merch store\nhttps://www.youtube.com/channel/UCEKt2bUDBoRUw3wpPpDOUaA/store\n\nMake a one time donation to the channel:\nhttp://www.paypal.me/CCNdonate\n\nCheck out the amazon store:\nhttp://www.amazon.com/shop/thecarcarenut\n*as an Amazon associate, I earn from qualifying purchases.\n\n#tccnautomotive #thecarcarenut #toyota #toyotatundra #toyotaengine \n\n0:00 Intro\n0:36 The Plan\n1:38 Engine Tear Down\n6:44 First Common Coolant Leak\n16:05 Ticking Timing Chain Tensioner\n20:52 Cam Tower Removal\n24:50 All Common Problems Explained\n36:57 Reassembly\n57:07 First Start", "Fixing Every Common Problem with Toyota's Last V8 Engine", "3d37b258-703a-40b7-a693-da25b3d108db", 44, [], 3548, false, "2bsULQcMxlg", "https://www.youtube.com/watch?v=2bsULQcMxlg", 7, "/downloads/Lexus - Coolant Valley Leak/2024-02-03 Fixing Every Common Problem with Toyota's Last V8 Engine/Fixing Every Common Problem with Toyota's Last V8 Engine [2bsULQcMxlg].mkv", false, false, false, 1, ~U[2024-02-03 16:45:00Z], ~U[2026-07-11 14:47:19Z], ~U[2026-07-11 14:47:19Z], "A Toyota specialist fixes every common problem with Toyota's Last V8 Engine the 3UR-FE.\n\nToday we work on a 2016 Toyota Tundra to fix every common problem with it. The ticking timing chain caused by a faulty timing chain tensioner. A Front TIming cover leak, Leaking cam towers and valley plate coolant leak.\n\nTCCN Automotive Inc.\nToyota and Lexus Specialist Repair\nVisit www.tccnautomotive.com to schedule your appointment today.\n\nCheck out the second channel : \nhttps://www.youtube.com/channel/UCUPPMkXFBPr-TAAE-CV9Jlg\n\nRecommended Tools:\nBasic Scan Tool https://amzn.to/3Jm6aom\nVery good DIY Scan Tool https://amzn.to/3zF7dvH\nAdvanced Scan tool https://amzn.to/3q3L3QQ\nSpill Free Coolant Replacement Funnel https://amzn.to/3uJfKxm\nSun roof drain cleaning tool https://amzn.to/3GMDlQ9\nGood DIY Torque Wrench 1/2\" https://amzn.to/3gE9bnw\nWireless Apple CarPlay for Toyota\\Lexus https://amzn.to/3uKElSo\nVery Good Triple Camera Borescope https://amzn.to/3MrgFs0\n*as an Amazon associate, I earn from qualifying purchases.\n\nFollow the channel on Social Media :\nhttp://www.facebook.com/thecarcarenut\nhttp://www.instagram.com/thecarcarenut\n\nCheck out the channel Merch store\nhttps://www.youtube.com/channel/UCEKt2bUDBoRUw3wpPpDOUaA/store\n\nMake a one time donation to the channel:\nhttp://www.paypal.me/CCNdonate\n\nCheck out the amazon store:\nhttp://www.amazon.com/shop/thecarcarenut\n*as an Amazon associate, I earn from qualifying purchases.\n\n#tccnautomotive #thecarcarenut #toyota #toyotatundra #toyotaengine \n\n0:00 Intro\n0:36 The Plan\n1:38 Engine Tear Down\n6:44 First Common Coolant Leak\n16:05 Ticking Timing Chain Tensioner\n20:52 Cam Tower Removal\n24:50 All Common Problems Explained\n36:57 Reassembly\n57:07 First Start", "Fixing Every Common Problem with Toyota's Last V8 Engine", 44, 3548, false, "2bsULQcMxlg", "https://www.youtube.com/watch?v=2bsULQcMxlg", "/downloads/Lexus - Coolant Valley Leak/2024-02-03 Fixing Every Common Problem with Toyota's Last V8 Engine/Fixing Every Common Problem with Toyota's Last V8 Engine [2bsULQcMxlg].mkv", false, ~U[2024-02-03 16:45:00Z]] 10:47:19.935 [debug] QUERY OK source="sources" db=0.1ms idle=17.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:19.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] 10:47:19.936 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22217] 10:47:19.936 [debug] Current batch of media processed. Will check again in 1000ms 10:47:20.937 [debug] Current batch of media processed. Will check again in 1000ms 10:47:21.938 [debug] Current batch of media processed. Will check again in 1000ms 10:47:22.939 [debug] Current batch of media processed. Will check again in 1000ms 10:47:23.940 [debug] Current batch of media processed. Will check again in 1000ms 10:47:24.941 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "#FixingLeak\n#TOYOTA\n#Landcruiser\n#Sequoia\n#Tundra", "duration" => 855, "filename" => "/downloads/Lexus - Coolant Valley Leak/2021-01-13 Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧/Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧 [Q2YcFeDfqks].mp4", "id" => "Q2YcFeDfqks", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Q2YcFeDfqks", "playlist_index" => 8, "timestamp" => 1610553628, "title" => "Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧", "upload_date" => "20210113"} 10:47:24.941 [debug] QUERY OK source="sources" db=0.1ms idle=1387.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [44] 10:47:24.942 [debug] QUERY OK source="sources" db=0.1ms idle=1387.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:24.942 [debug] QUERY OK source="media_items" db=0.1ms idle=1387.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-01-13 16:00:28Z], 44] 10:47:24.943 [debug] QUERY OK source="media_items" db=0.4ms idle=1019.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#FixingLeak\n#TOYOTA\n#Landcruiser\n#Sequoia\n#Tundra", "Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧", "b2687abf-6710-4d49-8823-b1be8ea14287", 44, [], 855, false, "Q2YcFeDfqks", "https://www.youtube.com/watch?v=Q2YcFeDfqks", 8, "/downloads/Lexus - Coolant Valley Leak/2021-01-13 Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧/Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧 [Q2YcFeDfqks].mp4", false, false, false, 1, ~U[2021-01-13 16:00:28Z], ~U[2026-07-11 14:47:24Z], ~U[2026-07-11 14:47:24Z], "#FixingLeak\n#TOYOTA\n#Landcruiser\n#Sequoia\n#Tundra", "Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧", 44, 855, false, "Q2YcFeDfqks", "https://www.youtube.com/watch?v=Q2YcFeDfqks", "/downloads/Lexus - Coolant Valley Leak/2021-01-13 Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧/Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧 [Q2YcFeDfqks].mp4", false, ~U[2021-01-13 16:00:28Z]] 10:47:24.943 [debug] QUERY OK source="sources" db=0.1ms idle=19.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:24.943 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:47:24.944 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22225] 10:47:24.944 [debug] Current batch of media processed. Will check again in 1000ms 10:47:25.944 [debug] Current batch of media processed. Will check again in 1000ms 10:47:26.945 [debug] Current batch of media processed. Will check again in 1000ms 10:47:27.946 [debug] Current batch of media processed. Will check again in 1000ms 10:47:28.947 [debug] Current batch of media processed. Will check again in 1000ms 10:47:29.272 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLnU_xhH1pUoEnwgZ6xWo9JRG7XE4aadUf --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Lexus - Coolant Valley Leak/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:2160,+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/68/ac/68ac98a335298621ff756ae6969f4e8232d076aade098c38ed9ca0aa3f54a147.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 10:47:29.273 [debug] Gracefully stopping file follower 10:47:29.273 [debug] QUERY OK source="sources" db=0.2ms idle=718.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [44] 10:47:29.273 [debug] QUERY OK source="sources" db=0.1ms idle=719.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:29.274 [debug] QUERY OK source="media_items" db=0.1ms idle=719.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-07 04:50:25Z], 44] 10:47:29.274 [debug] QUERY OK source="media_items" db=0.4ms idle=719.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Follow along with me as I reassemble the top end of my GX460’s engine and re-seal the leaking valley cover plate. We’ll walk though the process and take in some tips and tricks along the way.", "GX460 Valley Cover Plate Leak Fix", "5204c4a2-f279-4ca8-be42-e19a641de8c2", 44, [], 1607, false, "gpZ639EpIvU", "https://www.youtube.com/watch?v=gpZ639EpIvU", 1, "/downloads/Lexus - Coolant Valley Leak/2024-01-07 GX460 Valley Cover Plate Leak Fix/GX460 Valley Cover Plate Leak Fix [gpZ639EpIvU].mp4", false, false, false, 1, ~U[2024-01-07 04:50:25Z], ~U[2026-07-11 14:47:29Z], ~U[2026-07-11 14:47:29Z], "Follow along with me as I reassemble the top end of my GX460’s engine and re-seal the leaking valley cover plate. We’ll walk though the process and take in some tips and tricks along the way.", "GX460 Valley Cover Plate Leak Fix", 44, 1607, false, "gpZ639EpIvU", "https://www.youtube.com/watch?v=gpZ639EpIvU", "/downloads/Lexus - Coolant Valley Leak/2024-01-07 GX460 Valley Cover Plate Leak Fix/GX460 Valley Cover Plate Leak Fix [gpZ639EpIvU].mp4", false, ~U[2024-01-07 04:50:25Z]] 10:47:29.275 [debug] QUERY OK source="sources" db=0.1ms idle=346.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:29.275 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-08-20 17:44:15Z], 44] 10:47:29.300 [debug] QUERY OK source="media_items" db=24.8ms idle=1.7ms INSERT INTO "media_items" AS m0 ("title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Coolant leak at block upper part ( Land cruiser EX.R)", "0e98e4cb-6300-4c3d-9da3-a051d5036a6c", 44, [], 531, false, "Y5p8y8mxT8g", "https://www.youtube.com/watch?v=Y5p8y8mxT8g", 2, "/downloads/Lexus - Coolant Valley Leak/2020-08-20 Coolant leak at block upper part ( Land cruiser EX.R)/Coolant leak at block upper part ( Land cruiser EX.R) [Y5p8y8mxT8g].mp4", false, false, false, 1, ~U[2020-08-20 17:44:15Z], ~U[2026-07-11 14:47:29Z], ~U[2026-07-11 14:47:29Z], "", "Coolant leak at block upper part ( Land cruiser EX.R)", 44, 531, false, "Y5p8y8mxT8g", "https://www.youtube.com/watch?v=Y5p8y8mxT8g", "/downloads/Lexus - Coolant Valley Leak/2020-08-20 Coolant leak at block upper part ( Land cruiser EX.R)/Coolant leak at block upper part ( Land cruiser EX.R) [Y5p8y8mxT8g].mp4", false, ~U[2020-08-20 17:44:15Z]] 10:47:29.301 [debug] QUERY OK source="sources" db=0.2ms idle=26.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:29.301 [debug] QUERY OK source="media_items" db=0.1ms idle=26.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-20 10:30:04Z], 44] 10:47:29.307 [debug] QUERY OK source="media_items" db=5.4ms idle=26.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Resealing the heat exchanger plate under the intake manifold on a Tundra 5.7", "TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE", "fb5112a0-40a3-462d-a94e-d1fca1d839a3", 44, [], 1349, false, "PnUL0GR6mfs", "https://www.youtube.com/watch?v=PnUL0GR6mfs", 3, "/downloads/Lexus - Coolant Valley Leak/2021-03-20 TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE/TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE [PnUL0GR6mfs].mp4", false, false, false, 1, ~U[2021-03-20 10:30:04Z], ~U[2026-07-11 14:47:29Z], ~U[2026-07-11 14:47:29Z], "Resealing the heat exchanger plate under the intake manifold on a Tundra 5.7", "TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE", 44, 1349, false, "PnUL0GR6mfs", "https://www.youtube.com/watch?v=PnUL0GR6mfs", "/downloads/Lexus - Coolant Valley Leak/2021-03-20 TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE/TOYOTA TUNDRA 5.7 COOLANT LEAK UNDER INTAKE [PnUL0GR6mfs].mp4", false, ~U[2021-03-20 10:30:04Z]] 10:47:29.307 [debug] QUERY OK source="sources" db=0.2ms idle=31.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:29.307 [debug] QUERY OK source="media_items" db=0.2ms 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[2013-11-10 19:27:18Z], 44] 10:47:29.309 [debug] QUERY OK source="media_items" db=1.1ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Learn how to use RTV to make a rear differential gasket, waterpump gasket, oil pan gasket, thermostat gasket, valve cover gasket, or whatever needs a gasket but you cant find a gasket. Using this method will help make sure you seal whatever you are working on, properly. If you dont use the RTV gasket maker correctly then you can get a leak and all that hard work was for nothing. \n\nHere is the RTV I used: https://amzlink.to/az0iSFOJybcUI\n\n**If the video was helpful, remember to give it a \"thumbs up\" and consider subscribing. New videos every Thursday**\n\n-As an Amazon Associate I earn from qualifying purchases.\n-Website: https://www.ChrisFixed.com\n-Facebook: https://www.facebook.com/chrisfix8\n-Twitter: https://twitter.com/ChrisFixed\n-Instagram: https://instagram.com/chrisfixit\n-Subscribe Here: http://www.youtube.com/subscription_center?add_user=paintballoo7\n-YouTube Channel: https://www.youtube.com/ChrisFix\n\nDisclaimer:\nDue to factors beyond the control of ChrisFix, I cannot guarantee against improper use or unauthorized modifications of this information. ChrisFix assumes no liability for property damage or injury incurred as a result of any of the information contained in this video. Use this information at your own risk. ChrisFix recommends safe practices when working on vehicles and or with tools seen or implied in this video. Due to factors beyond the control of ChrisFix, no information contained in this video shall create any expressed or implied warranty or guarantee of any particular result. Any injury, damage, or loss that may result from improper use of these tools, equipment, or from the information contained in this video is the sole responsibility of the user and not ChrisFix.", "How to use RTV and properly make a gasket", "b4b7b51d-cd47-4521-915b-3fd799546fe9", 44, [], 317, false, "21CvanhKILA", "https://www.youtube.com/watch?v=21CvanhKILA", 4, "/downloads/Lexus - Coolant Valley Leak/2013-11-10 How to use RTV and properly make a gasket/How to use RTV and properly make a gasket [21CvanhKILA].mp4", false, false, false, 1, ~U[2013-11-10 19:27:18Z], ~U[2026-07-11 14:47:29Z], ~U[2026-07-11 14:47:29Z], "Learn how to use RTV to make a rear differential gasket, waterpump gasket, oil pan gasket, thermostat gasket, valve cover gasket, or whatever needs a gasket but you cant find a gasket. Using this method will help make sure you seal whatever you are working on, properly. If you dont use the RTV gasket maker correctly then you can get a leak and all that hard work was for nothing. \n\nHere is the RTV I used: https://amzlink.to/az0iSFOJybcUI\n\n**If the video was helpful, remember to give it a \"thumbs up\" and consider subscribing. New videos every Thursday**\n\n-As an Amazon Associate I earn from qualifying purchases.\n-Website: https://www.ChrisFixed.com\n-Facebook: https://www.facebook.com/chrisfix8\n-Twitter: https://twitter.com/ChrisFixed\n-Instagram: https://instagram.com/chrisfixit\n-Subscribe Here: http://www.youtube.com/subscription_center?add_user=paintballoo7\n-YouTube Channel: https://www.youtube.com/ChrisFix\n\nDisclaimer:\nDue to factors beyond the control of ChrisFix, I cannot guarantee against improper use or unauthorized modifications of this information. ChrisFix assumes no liability for property damage or injury incurred as a result of any of the information contained in this video. Use this information at your own risk. ChrisFix recommends safe practices when working on vehicles and or with tools seen or implied in this video. Due to factors beyond the control of ChrisFix, no information contained in this video shall create any expressed or implied warranty or guarantee of any particular result. Any injury, damage, or loss that may result from improper use of these tools, equipment, or from the information contained in this video is the sole responsibility of the user and not ChrisFix.", "How to use RTV and properly make a gasket", 44, 317, false, "21CvanhKILA", "https://www.youtube.com/watch?v=21CvanhKILA", "/downloads/Lexus - Coolant Valley Leak/2013-11-10 How to use RTV and properly make a gasket/How to use RTV and properly make a gasket [21CvanhKILA].mp4", false, ~U[2013-11-10 19:27:18Z]] 10:47:29.309 [debug] QUERY OK source="sources" db=0.1ms idle=8.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:29.310 [debug] QUERY OK source="media_items" db=0.1ms idle=2.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-24 22:57:21Z], 44] 10:47:29.310 [debug] QUERY OK source="media_items" db=0.4ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Greg's Repair Shop in McAllen, Texas was able to sort out Sandy's Valley Plate Leak problem. I hope this brief explainer helps you understand this very common issue with Lexus and Toyota coolant leak problems.", "EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460", "b8eb1020-7b84-4575-98e0-d6a374d391d6", 44, [], 352, false, "8_GauylWRLM", "https://www.youtube.com/watch?v=8_GauylWRLM", 5, "/downloads/Lexus - Coolant Valley Leak/2023-02-24 EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460/EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460 [8_GauylWRLM].mkv", false, false, false, 1, ~U[2023-02-24 22:57:21Z], ~U[2026-07-11 14:47:29Z], ~U[2026-07-11 14:47:29Z], "Greg's Repair Shop in McAllen, Texas was able to sort out Sandy's Valley Plate Leak problem. I hope this brief explainer helps you understand this very common issue with Lexus and Toyota coolant leak problems.", "EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460", 44, 352, false, "8_GauylWRLM", "https://www.youtube.com/watch?v=8_GauylWRLM", "/downloads/Lexus - Coolant Valley Leak/2023-02-24 EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460/EXPERT Mechanic Explains the Valley Plate Leak on Lexus GX460 [8_GauylWRLM].mkv", false, ~U[2023-02-24 22:57:21Z]] 10:47:29.311 [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" = ?) [44] 10:47:29.311 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-09 01:13:29Z], 44] 10:47:29.312 [debug] QUERY OK source="media_items" db=0.8ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Brian Eslick from How to Automotive http://www.howtoautomotive.com\u200B\u200B gives you auto repair tips on how to remove wire loom holders, without breaking them, on Toyota and Lexus vehicles. #short\u200B\u200Bs\n\nNew! How to Automotive T-shirts, stickers, and more! Click the link teespring.com/stores/how-to-automotive\n\nAffiliate link for How to Automotive Tool Store https://www.amazon.com/shop/howtoautomotive\n\n\nWebsite\nFor more videos, tips, and to purchase recommended tools and products visit my website at: http://www.howtoautomotive.com/\u200B\u200B\n\nStay connected at:\nEmail: howtoautomotive@gmail.com\nFacebook: https://www.facebook.com/How-to-Autom\u200B\u200B...\nGoogle+: https://plus.google.com/+HowtoAutomot\u200B\u200B... \nLinkedIn: https://www.linkedin.com/in/brian-esl\u200B\u200B...\n\n\n\n\nDisclaimer\nOwing to factors beyond the control of How to Automotive/Brian Eslick, it cannot guarantee against unauthorized modification of this information, or improper use of this information. How to Automotive/Brian Eslick assumes no liability for property damage or injury incurred as a result of any information contained in this video. How to Automotive/Brian Eslick recommends safe practice when working with power tools, automotive lifts, lifting tools, jacks and jack stands, electrical equipment, blunt instruments, chemical lubricants, or any other tools or equipment seen or implied in this video. Because of factors beyond the control of How to Automotive/Brian Eslick, no information contained in this video shall express or imply warranty or guarantee of any particular result. Any injury, damage or loss that may result from improper use of these tools, equipment, or information contained in this video is the sole responsibility of the user and not How to Automotive/Brian Eslick. #howtoautomotive\u200B\u200B #Shorts", "How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts", "efd72244-c711-4c89-bffb-520a7c8ecd02", 44, [], 44, false, "gpZLU2ftDXo", "https://www.youtube.com/watch?v=gpZLU2ftDXo", 6, "/downloads/Lexus - Coolant Valley Leak/2021-02-09 How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts/How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts [gpZLU2ftDXo].mp4", false, false, false, 1, ~U[2021-02-09 01:13:29Z], ~U[2026-07-11 14:47:29Z], ~U[2026-07-11 14:47:29Z], "Brian Eslick from How to Automotive http://www.howtoautomotive.com\u200B\u200B gives you auto repair tips on how to remove wire loom holders, without breaking them, on Toyota and Lexus vehicles. #short\u200B\u200Bs\n\nNew! How to Automotive T-shirts, stickers, and more! Click the link teespring.com/stores/how-to-automotive\n\nAffiliate link for How to Automotive Tool Store https://www.amazon.com/shop/howtoautomotive\n\n\nWebsite\nFor more videos, tips, and to purchase recommended tools and products visit my website at: http://www.howtoautomotive.com/\u200B\u200B\n\nStay connected at:\nEmail: howtoautomotive@gmail.com\nFacebook: https://www.facebook.com/How-to-Autom\u200B\u200B...\nGoogle+: https://plus.google.com/+HowtoAutomot\u200B\u200B... \nLinkedIn: https://www.linkedin.com/in/brian-esl\u200B\u200B...\n\n\n\n\nDisclaimer\nOwing to factors beyond the control of How to Automotive/Brian Eslick, it cannot guarantee against unauthorized modification of this information, or improper use of this information. How to Automotive/Brian Eslick assumes no liability for property damage or injury incurred as a result of any information contained in this video. How to Automotive/Brian Eslick recommends safe practice when working with power tools, automotive lifts, lifting tools, jacks and jack stands, electrical equipment, blunt instruments, chemical lubricants, or any other tools or equipment seen or implied in this video. Because of factors beyond the control of How to Automotive/Brian Eslick, no information contained in this video shall express or imply warranty or guarantee of any particular result. Any injury, damage or loss that may result from improper use of these tools, equipment, or information contained in this video is the sole responsibility of the user and not How to Automotive/Brian Eslick. #howtoautomotive\u200B\u200B #Shorts", "How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts", 44, 44, false, "gpZLU2ftDXo", "https://www.youtube.com/watch?v=gpZLU2ftDXo", "/downloads/Lexus - Coolant Valley Leak/2021-02-09 How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts/How to Unplug Wire Loom Holders on Toyota and Lexus Vehicles #Shorts [gpZLU2ftDXo].mp4", false, ~U[2021-02-09 01:13:29Z]] 10:47:29.312 [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" = ?) [44] 10:47:29.313 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-03 16:45:00Z], 44] 10:47:29.314 [debug] QUERY OK source="media_items" db=0.8ms idle=2.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A Toyota specialist fixes every common problem with Toyota's Last V8 Engine the 3UR-FE.\n\nToday we work on a 2016 Toyota Tundra to fix every common problem with it. The ticking timing chain caused by a faulty timing chain tensioner. A Front TIming cover leak, Leaking cam towers and valley plate coolant leak.\n\nTCCN Automotive Inc.\nToyota and Lexus Specialist Repair\nVisit www.tccnautomotive.com to schedule your appointment today.\n\nCheck out the second channel : \nhttps://www.youtube.com/channel/UCUPPMkXFBPr-TAAE-CV9Jlg\n\nRecommended Tools:\nBasic Scan Tool https://amzn.to/3Jm6aom\nVery good DIY Scan Tool https://amzn.to/3zF7dvH\nAdvanced Scan tool https://amzn.to/3q3L3QQ\nSpill Free Coolant Replacement Funnel https://amzn.to/3uJfKxm\nSun roof drain cleaning tool https://amzn.to/3GMDlQ9\nGood DIY Torque Wrench 1/2\" https://amzn.to/3gE9bnw\nWireless Apple CarPlay for Toyota\\Lexus https://amzn.to/3uKElSo\nVery Good Triple Camera Borescope https://amzn.to/3MrgFs0\n*as an Amazon associate, I earn from qualifying purchases.\n\nFollow the channel on Social Media :\nhttp://www.facebook.com/thecarcarenut\nhttp://www.instagram.com/thecarcarenut\n\nCheck out the channel Merch store\nhttps://www.youtube.com/channel/UCEKt2bUDBoRUw3wpPpDOUaA/store\n\nMake a one time donation to the channel:\nhttp://www.paypal.me/CCNdonate\n\nCheck out the amazon store:\nhttp://www.amazon.com/shop/thecarcarenut\n*as an Amazon associate, I earn from qualifying purchases.\n\n#tccnautomotive #thecarcarenut #toyota #toyotatundra #toyotaengine \n\n0:00 Intro\n0:36 The Plan\n1:38 Engine Tear Down\n6:44 First Common Coolant Leak\n16:05 Ticking Timing Chain Tensioner\n20:52 Cam Tower Removal\n24:50 All Common Problems Explained\n36:57 Reassembly\n57:07 First Start", "Fixing Every Common Problem with Toyota's Last V8 Engine", "77994a04-0a11-43fe-a6b1-9f5500f9d523", 44, [], 3548, false, "2bsULQcMxlg", "https://www.youtube.com/watch?v=2bsULQcMxlg", 7, "/downloads/Lexus - Coolant Valley Leak/2024-02-03 Fixing Every Common Problem with Toyota's Last V8 Engine/Fixing Every Common Problem with Toyota's Last V8 Engine [2bsULQcMxlg].mkv", false, false, false, 1, ~U[2024-02-03 16:45:00Z], ~U[2026-07-11 14:47:29Z], ~U[2026-07-11 14:47:29Z], "A Toyota specialist fixes every common problem with Toyota's Last V8 Engine the 3UR-FE.\n\nToday we work on a 2016 Toyota Tundra to fix every common problem with it. The ticking timing chain caused by a faulty timing chain tensioner. A Front TIming cover leak, Leaking cam towers and valley plate coolant leak.\n\nTCCN Automotive Inc.\nToyota and Lexus Specialist Repair\nVisit www.tccnautomotive.com to schedule your appointment today.\n\nCheck out the second channel : \nhttps://www.youtube.com/channel/UCUPPMkXFBPr-TAAE-CV9Jlg\n\nRecommended Tools:\nBasic Scan Tool https://amzn.to/3Jm6aom\nVery good DIY Scan Tool https://amzn.to/3zF7dvH\nAdvanced Scan tool https://amzn.to/3q3L3QQ\nSpill Free Coolant Replacement Funnel https://amzn.to/3uJfKxm\nSun roof drain cleaning tool https://amzn.to/3GMDlQ9\nGood DIY Torque Wrench 1/2\" https://amzn.to/3gE9bnw\nWireless Apple CarPlay for Toyota\\Lexus https://amzn.to/3uKElSo\nVery Good Triple Camera Borescope https://amzn.to/3MrgFs0\n*as an Amazon associate, I earn from qualifying purchases.\n\nFollow the channel on Social Media :\nhttp://www.facebook.com/thecarcarenut\nhttp://www.instagram.com/thecarcarenut\n\nCheck out the channel Merch store\nhttps://www.youtube.com/channel/UCEKt2bUDBoRUw3wpPpDOUaA/store\n\nMake a one time donation to the channel:\nhttp://www.paypal.me/CCNdonate\n\nCheck out the amazon store:\nhttp://www.amazon.com/shop/thecarcarenut\n*as an Amazon associate, I earn from qualifying purchases.\n\n#tccnautomotive #thecarcarenut #toyota #toyotatundra #toyotaengine \n\n0:00 Intro\n0:36 The Plan\n1:38 Engine Tear Down\n6:44 First Common Coolant Leak\n16:05 Ticking Timing Chain Tensioner\n20:52 Cam Tower Removal\n24:50 All Common Problems Explained\n36:57 Reassembly\n57:07 First Start", "Fixing Every Common Problem with Toyota's Last V8 Engine", 44, 3548, false, "2bsULQcMxlg", "https://www.youtube.com/watch?v=2bsULQcMxlg", "/downloads/Lexus - Coolant Valley Leak/2024-02-03 Fixing Every Common Problem with Toyota's Last V8 Engine/Fixing Every Common Problem with Toyota's Last V8 Engine [2bsULQcMxlg].mkv", false, ~U[2024-02-03 16:45:00Z]] 10:47:29.314 [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" = ?) [44] 10:47:29.314 [debug] QUERY OK source="media_items" db=0.1ms 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[2021-01-13 16:00:28Z], 44] 10:47:29.315 [debug] QUERY OK source="media_items" db=0.3ms idle=2.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#FixingLeak\n#TOYOTA\n#Landcruiser\n#Sequoia\n#Tundra", "Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧", "7dcfb192-e85e-4391-a0b4-452c9967a740", 44, [], 855, false, "Q2YcFeDfqks", "https://www.youtube.com/watch?v=Q2YcFeDfqks", 8, "/downloads/Lexus - Coolant Valley Leak/2021-01-13 Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧/Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧 [Q2YcFeDfqks].mp4", false, false, false, 1, ~U[2021-01-13 16:00:28Z], ~U[2026-07-11 14:47:29Z], ~U[2026-07-11 14:47:29Z], "#FixingLeak\n#TOYOTA\n#Landcruiser\n#Sequoia\n#Tundra", "Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧", 44, 855, false, "Q2YcFeDfqks", "https://www.youtube.com/watch?v=Q2YcFeDfqks", "/downloads/Lexus - Coolant Valley Leak/2021-01-13 Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧/Common Problem coolant leak TOYOTA sequoia,land cruiser & tundra 2008-2020 !!! 👨\u200D🔧👨\u200D🔧👨\u200D🔧 [Q2YcFeDfqks].mp4", false, ~U[2021-01-13 16:00:28Z]] 10:47:29.315 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [44] 10:47:29.316 [debug] QUERY OK source="media_items" db=0.1ms idle=1.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-24 22:02:38Z], 44] 10:47:29.316 [debug] QUERY OK source="media_items" db=0.5ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This is my first major engine job. The valley plate can be worked as DIY. The key is to take your time and remember where all things are supposed to be. Here's the link below for what tools and parts are needed to do this job. A few issues with the 1UR-FE engine are the valley coolant, cam tower, and front timing cover leaks. \n\nhttps://forum.ih8mud.com/threads/diy-coolant-valley-leak-repair.1240395/\n\n#gx460 #diy #toyota #lexus #howto #asmr #automobile #viral #trending", "TOYOTA I LEXUS I 1UR-FE I VALLEY PLATE COOLANT LEAK I GX460", "2a2f1e03-07da-4b10-8a58-cfa43cd5cf74", 44, [], 1077, false, "obsX1_KliGI", "https://www.youtube.com/watch?v=obsX1_KliGI", 9, "/downloads/Lexus - Coolant Valley Leak/2025-08-24 TOYOTA I LEXUS I 1UR-FE I VALLEY PLATE COOLANT LEAK I GX460/TOYOTA I LEXUS I 1UR-FE I VALLEY PLATE COOLANT LEAK I GX460 [obsX1_KliGI].mkv", false, false, false, 1, ~U[2025-08-24 22:02:38Z], ~U[2026-07-11 14:47:29Z], ~U[2026-07-11 14:47:29Z], "This is my first major engine job. The valley plate can be worked as DIY. The key is to take your time and remember where all things are supposed to be. Here's the link below for what tools and parts are needed to do this job. A few issues with the 1UR-FE engine are the valley coolant, cam tower, and front timing cover leaks. \n\nhttps://forum.ih8mud.com/threads/diy-coolant-valley-leak-repair.1240395/\n\n#gx460 #diy #toyota #lexus #howto #asmr #automobile #viral #trending", "TOYOTA I LEXUS I 1UR-FE I VALLEY PLATE COOLANT LEAK I GX460", 44, 1077, false, "obsX1_KliGI", "https://www.youtube.com/watch?v=obsX1_KliGI", "/downloads/Lexus - Coolant Valley Leak/2025-08-24 TOYOTA I LEXUS I 1UR-FE I VALLEY PLATE COOLANT LEAK I GX460/TOYOTA I LEXUS I 1UR-FE I VALLEY PLATE COOLANT LEAK I GX460 [obsX1_KliGI].mkv", false, ~U[2025-08-24 22:02:38Z]] 10:47:29.317 [debug] QUERY OK source="sources" db=0.1ms idle=2.2ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-07-11 14:47:29Z], ~U[2026-07-11 14:47:29Z], 44] 10:47:29.317 [debug] QUERY OK source="media_items" db=0.3ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [44] 10:47:29.318 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [44] 10:47:29.318 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [44] 10:47:29.319 [debug] QUERY OK source="tasks" db=0.1ms idle=1.3ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [14816, 44, ~U[2026-07-11 14:47:29Z], ~U[2026-07-11 14:47:29Z]] 10:47:29.319 [info] {"args":{"id":44},"id":14784,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":52449885,"event":"job:stop","queue_time":9630,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 10:47:30.447 [info] {"source":"oban","duration":661,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:48:00.192 [info] {"source":"oban","duration":337,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:48:00.448 [info] {"source":"oban","duration":634,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:48:30.449 [info] {"source":"oban","duration":705,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:48:30.675 [info] GET / 10:48:30.675 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:48:30.675 [debug] QUERY OK source="settings" db=0.1ms idle=1120.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:48:30.675 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1120.9ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:48:30.675 [debug] QUERY OK source="sources" db=0.0ms idle=1121.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:48:30.684 [debug] QUERY OK source="media_items" db=8.5ms idle=674.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:48:30.685 [debug] QUERY OK source="media_items" db=1.0ms idle=235.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:48:30.685 [debug] QUERY OK source="settings" db=0.1ms idle=10.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:48:30.685 [debug] QUERY OK source="settings" db=0.0ms idle=10.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:48:30.686 [debug] QUERY OK source="settings" db=0.0ms idle=10.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:48:30.686 [debug] QUERY OK source="tasks" db=0.1ms 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"] 10:48:30.687 [debug] QUERY OK source="media_items" db=0.6ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:48:30.688 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 10:48:30.688 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 10:48:30.700 [debug] QUERY OK source="media_items" db=10.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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:48:30.700 [debug] QUERY OK source="media_items" db=0.6ms idle=13.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] 10:48:30.701 [debug] QUERY OK source="sources" db=0.1ms idle=13.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 10:48:30.702 [info] Sent 200 in 27ms 10:49:00.193 [info] {"source":"oban","duration":336,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:49:00.450 [info] {"source":"oban","duration":1065,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:49:30.452 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:50:00.194 [info] {"source":"oban","duration":172,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:50:00.453 [info] {"source":"oban","duration":641,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:50:30.454 [info] {"source":"oban","duration":700,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:51:00.195 [info] {"source":"oban","duration":242,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:51:00.455 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:51:30.457 [info] {"source":"oban","duration":748,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:52:00.196 [info] {"source":"oban","duration":323,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:52:00.459 [info] {"source":"oban","duration":588,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:52:30.459 [info] {"source":"oban","duration":553,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:53:00.197 [info] {"source":"oban","duration":286,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:53:00.461 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:53:00.884 [info] GET / 10:53:00.884 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:53:00.884 [debug] QUERY OK source="settings" db=0.1ms idle=1329.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:00.884 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1329.9ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:53:00.884 [debug] QUERY OK source="sources" db=0.2ms idle=687.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:53:00.893 [debug] QUERY OK source="media_items" db=8.1ms idle=553.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:53:00.894 [debug] QUERY OK source="media_items" db=0.9ms idle=432.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:53:00.894 [debug] QUERY OK source="settings" db=0.0ms idle=9.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:00.894 [debug] QUERY OK source="settings" db=0.0ms idle=9.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:00.895 [debug] QUERY OK source="settings" db=0.0ms idle=9.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:00.895 [debug] QUERY OK source="tasks" db=0.1ms 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"] 10:53:00.896 [debug] QUERY OK source="media_items" db=0.6ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:53:00.896 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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] 10:53:00.897 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 10:53:00.903 [debug] QUERY OK source="media_items" db=5.0ms 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 (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:53:00.904 [debug] QUERY OK source="media_items" db=0.5ms idle=7.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] 10:53:00.904 [debug] QUERY OK source="sources" db=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" IN (?,?,?)) [42, 18, 16] 10:53:00.905 [info] Sent 200 in 21ms 10:53:19.357 [info] {"args":{"id":10},"id":14785,"meta":{},"system_time":1783781599357150876,"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:53:19.358 [debug] QUERY OK source="sources" db=1.5ms idle=802.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:19.360 [debug] QUERY OK source="settings" db=1.5ms idle=804.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:19.362 [debug] QUERY OK source="media_items" db=1.9ms idle=806.1ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [10] 10:53:19.363 [debug] QUERY OK source="media_items" db=0.1ms idle=11.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [10] 10:53:19.363 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:53:19.363 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:19.363 [debug] QUERY OK source="settings" db=0.0ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:19.366 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 10:53:19.366 [debug] Current batch of media processed. Will check again in 1000ms 10:53:19.366 [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 [] 10:53:19.366 [debug] QUERY OK source="settings" db=0.0ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:19.366 [debug] QUERY OK source="settings" db=0.0ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:53:19.366 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLnU_xhH1pUoFPO7og8lXSIOIN4F5izYV5 --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Vanlife/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:2160,+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/ba/2a/ba2ac667873e465533b972e0c20c57917225a33ffa63b0d4127468c1eec1abfa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 10:53:20.367 [debug] Current batch of media processed. Will check again in 1000ms 10:53:21.368 [debug] Current batch of media processed. Will check again in 1000ms 10:53:22.369 [debug] Current batch of media processed. Will check again in 1000ms 10:53:23.370 [debug] Current batch of media processed. Will check again in 1000ms 10:53:24.371 [debug] Current batch of media processed. Will check again in 1000ms 10:53:25.372 [debug] Current batch of media processed. Will check again in 1000ms 10:53:26.373 [debug] Current batch of media processed. Will check again in 1000ms 10:53:27.374 [debug] Current batch of media processed. Will check again in 1000ms 10:53:28.375 [debug] Current batch of media processed. Will check again in 1000ms 10:53:29.376 [debug] Current batch of media processed. Will check again in 1000ms 10:53:30.377 [debug] Current batch of media processed. Will check again in 1000ms 10:53:30.462 [info] {"source":"oban","duration":640,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:53:31.378 [debug] Current batch of media processed. Will check again in 1000ms 10:53:32.379 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "This van is for sale. Price: $68,500\n\nIncludes 1 year build warranty\n\nI built this van in 2021 used it for a bit and sold it to a travel nurse. He was able to use it for his work until he no longer needed it. Last year I had the opportunity to buy it back! I used it for fun here and there, fully remodeled it to look like my current designs, and upgraded some things to ensure it functions for many years.\n\nSelling because it’s time to build my next sprinter. I also have a truck camper now so too many vehicles.\n\nEmail: ravizzaluxuryvans@gmail.com\n\nInstagram: https://www.instagram.com/lucasravizza?igsh=NTc4MTIwNjQ2YQ%3D%3D&utm_source=qr\n\nVan: 2017 Ram Promaster\n\n• 133,500 miles\n• New Remanufactured ATK engine installed at 124,000 miles\n• New tires, a/c compressor, oil cooler, hoses, and seals.", "duration" => 955, "filename" => "/downloads/Vanlife/2026-05-14 Before You Spend $100k+ On A Van, Watch This!/Before You Spend $100k+ On A Van, Watch This! [UgLUT4x3eCw].mp4", "id" => "UgLUT4x3eCw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UgLUT4x3eCw", "playlist_index" => 1, "timestamp" => 1778798809, "title" => "Before You Spend $100k+ On A Van, Watch This!", "upload_date" => "20260514"} 10:53:32.379 [debug] QUERY OK source="sources" db=0.1ms idle=1825.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:53:32.380 [debug] QUERY OK source="sources" db=0.1ms idle=1825.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:32.380 [debug] QUERY OK source="media_items" db=0.3ms idle=1017.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-14 22:46:49Z], 10] 10:53:32.382 [debug] QUERY OK source="media_items" db=1.0ms idle=826.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This van is for sale. Price: $68,500\n\nIncludes 1 year build warranty\n\nI built this van in 2021 used it for a bit and sold it to a travel nurse. He was able to use it for his work until he no longer needed it. Last year I had the opportunity to buy it back! I used it for fun here and there, fully remodeled it to look like my current designs, and upgraded some things to ensure it functions for many years.\n\nSelling because it’s time to build my next sprinter. I also have a truck camper now so too many vehicles.\n\nEmail: ravizzaluxuryvans@gmail.com\n\nInstagram: https://www.instagram.com/lucasravizza?igsh=NTc4MTIwNjQ2YQ%3D%3D&utm_source=qr\n\nVan: 2017 Ram Promaster\n\n• 133,500 miles\n• New Remanufactured ATK engine installed at 124,000 miles\n• New tires, a/c compressor, oil cooler, hoses, and seals.", "Before You Spend $100k+ On A Van, Watch This!", "eb3aa870-6bca-4aaa-a138-d357f2f4dac1", 10, [], 955, false, "UgLUT4x3eCw", "https://www.youtube.com/watch?v=UgLUT4x3eCw", 1, "/downloads/Vanlife/2026-05-14 Before You Spend $100k+ On A Van, Watch This!/Before You Spend $100k+ On A Van, Watch This! [UgLUT4x3eCw].mp4", false, false, false, 1, ~U[2026-05-14 22:46:49Z], ~U[2026-07-11 14:53:32Z], ~U[2026-07-11 14:53:32Z], "This van is for sale. Price: $68,500\n\nIncludes 1 year build warranty\n\nI built this van in 2021 used it for a bit and sold it to a travel nurse. He was able to use it for his work until he no longer needed it. Last year I had the opportunity to buy it back! I used it for fun here and there, fully remodeled it to look like my current designs, and upgraded some things to ensure it functions for many years.\n\nSelling because it’s time to build my next sprinter. I also have a truck camper now so too many vehicles.\n\nEmail: ravizzaluxuryvans@gmail.com\n\nInstagram: https://www.instagram.com/lucasravizza?igsh=NTc4MTIwNjQ2YQ%3D%3D&utm_source=qr\n\nVan: 2017 Ram Promaster\n\n• 133,500 miles\n• New Remanufactured ATK engine installed at 124,000 miles\n• New tires, a/c compressor, oil cooler, hoses, and seals.", "Before You Spend $100k+ On A Van, Watch This!", 10, 955, false, "UgLUT4x3eCw", "https://www.youtube.com/watch?v=UgLUT4x3eCw", "/downloads/Vanlife/2026-05-14 Before You Spend $100k+ On A Van, Watch This!/Before You Spend $100k+ On A Van, Watch This! [UgLUT4x3eCw].mp4", false, ~U[2026-05-14 22:46:49Z]] 10:53:32.382 [debug] QUERY OK source="sources" db=0.1ms idle=18.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:32.382 [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] 10:53:32.383 [debug] QUERY OK source="media_items" db=0.1ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [20709] 10:53:32.383 [debug] Current batch of media processed. Will check again in 1000ms 10:53:33.383 [debug] Current batch of media processed. Will check again in 1000ms 10:53:34.384 [debug] Current batch of media processed. Will check again in 1000ms 10:53:35.385 [debug] Current batch of media processed. Will check again in 1000ms 10:53:36.386 [debug] Current batch of media processed. Will check again in 1000ms 10:53:37.387 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Kirby has brought us another masterpiece of a van build, but this time he had budget in mind and kept the cost down and still keeps the luxury look. The link to his listing for sale is below and I'm guessing this won't last long at the price point.\n\nKirby's Van for sale:\nhttps://vanlifetrader.com/listing/meet-obsidian-2024-mercedes-sprinter-awd/\n\nThank you to Kyle for doing the video tour. Make sure to check his channel:\n@ChopShopCrew \n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nWebsite: https://www.jarrodtocci.com\nMerch: https://jarrodtocci.com/store\nAmazon Store: https://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://www.youtube.com/channel/UCn9M1J4P_Ou3sMi0oym158Q\n\nBatteries: Big Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nGet off grid electrical at RV Connections:\nhttps://rvsolarconnections.com/ref/1063/\nCode: JARRODT5\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nNomadik Customs does a lot of van builds and now services any rig, so if you have any issues bring it to them and they will get you back on the road:\nhttps://www.nomadikcustoms.com/\ninfo@nomadikcustoms.com\nservice@nomadikcustoms.com\n\nLove HEST as my Camping Mattress:\nhttps://hest.com/\nDiscount Code: Stay Tuned as it’s Seasonal\n\nStanley for Camping Gear\nCheck Back for Codes\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "duration" => 1328, "filename" => "/downloads/Vanlife/2024-12-26 Stealth and Beauty Rolled into This Van Tour/Stealth and Beauty Rolled into This Van Tour [osj_hABF6lI].mp4", "id" => "osj_hABF6lI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=osj_hABF6lI", "playlist_index" => 2, "timestamp" => 1735232452, "title" => "Stealth and Beauty Rolled into This Van Tour", "upload_date" => "20241226"} 10:53:37.388 [debug] QUERY OK source="sources" db=0.1ms idle=1833.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:53:37.388 [debug] QUERY OK source="sources" db=0.0ms idle=1833.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:37.388 [debug] QUERY OK source="media_items" db=0.4ms idle=1833.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-26 17:00:52Z], 10] 10:53:37.391 [debug] QUERY OK source="media_items" db=1.7ms idle=1021.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Kirby has brought us another masterpiece of a van build, but this time he had budget in mind and kept the cost down and still keeps the luxury look. The link to his listing for sale is below and I'm guessing this won't last long at the price point.\n\nKirby's Van for sale:\nhttps://vanlifetrader.com/listing/meet-obsidian-2024-mercedes-sprinter-awd/\n\nThank you to Kyle for doing the video tour. Make sure to check his channel:\n@ChopShopCrew \n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nWebsite: https://www.jarrodtocci.com\nMerch: https://jarrodtocci.com/store\nAmazon Store: https://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://www.youtube.com/channel/UCn9M1J4P_Ou3sMi0oym158Q\n\nBatteries: Big Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nGet off grid electrical at RV Connections:\nhttps://rvsolarconnections.com/ref/1063/\nCode: JARRODT5\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nNomadik Customs does a lot of van builds and now services any rig, so if you have any issues bring it to them and they will get you back on the road:\nhttps://www.nomadikcustoms.com/\ninfo@nomadikcustoms.com\nservice@nomadikcustoms.com\n\nLove HEST as my Camping Mattress:\nhttps://hest.com/\nDiscount Code: Stay Tuned as it’s Seasonal\n\nStanley for Camping Gear\nCheck Back for Codes\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "Stealth and Beauty Rolled into This Van Tour", "891c5c56-4346-447b-b89a-f9e1c467e629", 10, [], 1328, false, "osj_hABF6lI", "https://www.youtube.com/watch?v=osj_hABF6lI", 2, "/downloads/Vanlife/2024-12-26 Stealth and Beauty Rolled into This Van Tour/Stealth and Beauty Rolled into This Van Tour [osj_hABF6lI].mp4", false, false, false, 1, ~U[2024-12-26 17:00:52Z], ~U[2026-07-11 14:53:37Z], ~U[2026-07-11 14:53:37Z], "Kirby has brought us another masterpiece of a van build, but this time he had budget in mind and kept the cost down and still keeps the luxury look. The link to his listing for sale is below and I'm guessing this won't last long at the price point.\n\nKirby's Van for sale:\nhttps://vanlifetrader.com/listing/meet-obsidian-2024-mercedes-sprinter-awd/\n\nThank you to Kyle for doing the video tour. Make sure to check his channel:\n@ChopShopCrew \n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nWebsite: https://www.jarrodtocci.com\nMerch: https://jarrodtocci.com/store\nAmazon Store: https://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://www.youtube.com/channel/UCn9M1J4P_Ou3sMi0oym158Q\n\nBatteries: Big Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nGet off grid electrical at RV Connections:\nhttps://rvsolarconnections.com/ref/1063/\nCode: JARRODT5\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nNomadik Customs does a lot of van builds and now services any rig, so if you have any issues bring it to them and they will get you back on the road:\nhttps://www.nomadikcustoms.com/\ninfo@nomadikcustoms.com\nservice@nomadikcustoms.com\n\nLove HEST as my Camping Mattress:\nhttps://hest.com/\nDiscount Code: Stay Tuned as it’s Seasonal\n\nStanley for Camping Gear\nCheck Back for Codes\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "Stealth and Beauty Rolled into This Van Tour", 10, 1328, false, "osj_hABF6lI", "https://www.youtube.com/watch?v=osj_hABF6lI", "/downloads/Vanlife/2024-12-26 Stealth and Beauty Rolled into This Van Tour/Stealth and Beauty Rolled into This Van Tour [osj_hABF6lI].mp4", false, ~U[2024-12-26 17:00:52Z]] 10:53:37.391 [debug] QUERY OK source="sources" db=0.2ms idle=22.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:37.391 [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:53:37.392 [debug] QUERY OK source="media_items" db=0.1ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [16865] 10:53:37.392 [debug] Current batch of media processed. Will check again in 1000ms 10:53:38.392 [debug] Current batch of media processed. Will check again in 1000ms 10:53:39.393 [debug] Current batch of media processed. Will check again in 1000ms 10:53:40.394 [debug] Current batch of media processed. Will check again in 1000ms 10:53:41.395 [debug] Current batch of media processed. Will check again in 1000ms 10:53:42.396 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The Mercedes Sprinter floor is fairly easy to work with. In this video I explain how and why I do what I do to insure a solid moisture-free sub floor system.\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#customvanbuild", "duration" => 1299, "filename" => "/downloads/Vanlife/2020-09-20 The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained#/The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained. [lLVWu5HR_dM].mp4", "id" => "lLVWu5HR_dM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lLVWu5HR_dM", "playlist_index" => 3, "timestamp" => 1600603212, "title" => "The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained.", "upload_date" => "20200920"} 10:53:42.397 [debug] QUERY OK source="sources" db=0.2ms idle=1842.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:53:42.397 [debug] QUERY OK source="sources" db=0.1ms idle=1842.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:42.397 [debug] QUERY OK source="media_items" db=0.4ms idle=1842.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-20 12:00:12Z], 10] 10:53:42.399 [debug] QUERY OK source="media_items" db=0.9ms idle=1025.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Mercedes Sprinter floor is fairly easy to work with. In this video I explain how and why I do what I do to insure a solid moisture-free sub floor system.\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#customvanbuild", "The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained.", "157478e8-c537-4bb8-9ec1-2111ae2fae46", 10, [], 1299, false, "lLVWu5HR_dM", "https://www.youtube.com/watch?v=lLVWu5HR_dM", 3, "/downloads/Vanlife/2020-09-20 The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained#/The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained. [lLVWu5HR_dM].mp4", false, false, false, 1, ~U[2020-09-20 12:00:12Z], ~U[2026-07-11 14:53:42Z], ~U[2026-07-11 14:53:42Z], "The Mercedes Sprinter floor is fairly easy to work with. In this video I explain how and why I do what I do to insure a solid moisture-free sub floor system.\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#customvanbuild", "The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained.", 10, 1299, false, "lLVWu5HR_dM", "https://www.youtube.com/watch?v=lLVWu5HR_dM", "/downloads/Vanlife/2020-09-20 The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained#/The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained. [lLVWu5HR_dM].mp4", false, ~U[2020-09-20 12:00:12Z]] 10:53:42.399 [debug] QUERY OK source="sources" db=0.1ms idle=25.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:42.399 [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] 10:53:42.400 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [16866] 10:53:42.400 [debug] Current batch of media processed. Will check again in 1000ms 10:53:43.400 [debug] Current batch of media processed. Will check again in 1000ms 10:53:44.401 [debug] Current batch of media processed. Will check again in 1000ms 10:53:45.402 [debug] Current batch of media processed. Will check again in 1000ms 10:53:46.403 [debug] Current batch of media processed. Will check again in 1000ms 10:53:47.404 [debug] Current batch of media processed. Will check again in 1000ms 10:53:48.405 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.9, "description" => "We begin our five-part Portland Series at the Sutor House, designed in 1938 by celebrated Oregon architect Pietro Belluschi, it is a quiet and deeply considered work of early modernism nestled in the hills of Portland, Oregon. Drawing inspiration from traditional Japanese architecture, the home embraces restraint, natural materials, and a seamless relationship between interior and landscape, where light, shadow, and season become part of the architecture itself.\n\nSince 2013, Aric and Erin Wood have served as thoughtful stewards of the Sutor House, undertaking a careful restoration rooted in patience, research, and respect. In addition to reviving the home, they also restored the surrounding landscape, reawakening the lush greenery and Japanese inspired garden that frames the house. Rather than reinventing the property, their work sought to reveal it, bringing Belluschi’s original intent back into focus while allowing both the house and landscape to age with grace. What emerges is a living home that honors its past and continues its story.\n\nFilm Mick Aure @miccck\nPhotography Elias Tebache @socalarchitecture\nMusic Diego Castellanos @diegocastellanos\nSpecial Thanks to Aric & Erin Wood and Marisa Swenson \n\nDo you have a home that you believe could fit in our series? Please send us an email to connect. https://openspaceseries.com/contact \n\nIf you have a reputable company or organization and would like to sponsor our channel, click the link below: https://openspaceseries.com/contact", "duration" => 778, "filename" => "/downloads/Vanlife/2026-02-06 Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour/Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour [X0G-akdfeK4].mkv", "id" => "X0G-akdfeK4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=X0G-akdfeK4", "playlist_index" => 4, "timestamp" => 1770343230, "title" => "Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour", "upload_date" => "20260206"} 10:53:48.406 [debug] QUERY OK source="sources" db=0.1ms idle=851.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:53:48.406 [debug] QUERY OK source="sources" db=0.0ms idle=851.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:48.406 [debug] QUERY OK source="media_items" db=0.4ms idle=851.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-06 02:00:30Z], 10] 10:53:48.408 [debug] QUERY OK source="media_items" db=1.3ms idle=852.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We begin our five-part Portland Series at the Sutor House, designed in 1938 by celebrated Oregon architect Pietro Belluschi, it is a quiet and deeply considered work of early modernism nestled in the hills of Portland, Oregon. Drawing inspiration from traditional Japanese architecture, the home embraces restraint, natural materials, and a seamless relationship between interior and landscape, where light, shadow, and season become part of the architecture itself.\n\nSince 2013, Aric and Erin Wood have served as thoughtful stewards of the Sutor House, undertaking a careful restoration rooted in patience, research, and respect. In addition to reviving the home, they also restored the surrounding landscape, reawakening the lush greenery and Japanese inspired garden that frames the house. Rather than reinventing the property, their work sought to reveal it, bringing Belluschi’s original intent back into focus while allowing both the house and landscape to age with grace. What emerges is a living home that honors its past and continues its story.\n\nFilm Mick Aure @miccck\nPhotography Elias Tebache @socalarchitecture\nMusic Diego Castellanos @diegocastellanos\nSpecial Thanks to Aric & Erin Wood and Marisa Swenson \n\nDo you have a home that you believe could fit in our series? Please send us an email to connect. https://openspaceseries.com/contact \n\nIf you have a reputable company or organization and would like to sponsor our channel, click the link below: https://openspaceseries.com/contact", "Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour", "a2d60284-8e20-48bd-a6f5-9854fcac0887", 10, [], 778, false, "X0G-akdfeK4", "https://www.youtube.com/watch?v=X0G-akdfeK4", 4, "/downloads/Vanlife/2026-02-06 Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour/Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour [X0G-akdfeK4].mkv", false, false, false, 2, ~U[2026-02-06 02:00:30Z], ~U[2026-07-11 14:53:48Z], ~U[2026-07-11 14:53:48Z], "We begin our five-part Portland Series at the Sutor House, designed in 1938 by celebrated Oregon architect Pietro Belluschi, it is a quiet and deeply considered work of early modernism nestled in the hills of Portland, Oregon. Drawing inspiration from traditional Japanese architecture, the home embraces restraint, natural materials, and a seamless relationship between interior and landscape, where light, shadow, and season become part of the architecture itself.\n\nSince 2013, Aric and Erin Wood have served as thoughtful stewards of the Sutor House, undertaking a careful restoration rooted in patience, research, and respect. In addition to reviving the home, they also restored the surrounding landscape, reawakening the lush greenery and Japanese inspired garden that frames the house. Rather than reinventing the property, their work sought to reveal it, bringing Belluschi’s original intent back into focus while allowing both the house and landscape to age with grace. What emerges is a living home that honors its past and continues its story.\n\nFilm Mick Aure @miccck\nPhotography Elias Tebache @socalarchitecture\nMusic Diego Castellanos @diegocastellanos\nSpecial Thanks to Aric & Erin Wood and Marisa Swenson \n\nDo you have a home that you believe could fit in our series? Please send us an email to connect. https://openspaceseries.com/contact \n\nIf you have a reputable company or organization and would like to sponsor our channel, click the link below: https://openspaceseries.com/contact", "Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour", 10, 778, false, "X0G-akdfeK4", "https://www.youtube.com/watch?v=X0G-akdfeK4", "/downloads/Vanlife/2026-02-06 Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour/Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour [X0G-akdfeK4].mkv", false, ~U[2026-02-06 02:00:30Z]] 10:53:48.409 [debug] QUERY OK source="sources" db=0.1ms idle=28.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:48.409 [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:53:48.409 [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 [12817] 10:53:48.409 [debug] Current batch of media processed. Will check again in 1000ms 10:53:49.410 [debug] Current batch of media processed. Will check again in 1000ms 10:53:50.411 [debug] Current batch of media processed. Will check again in 1000ms 10:53:51.412 [debug] Current batch of media processed. Will check again in 1000ms 10:53:52.413 [debug] Current batch of media processed. Will check again in 1000ms 10:53:53.414 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "This is Horizon. From the 1260 watts extendable solar panels to the modular sliding section of the van, the engineering pinnacle of my van-building career is finally done! The best part is, it’s for sale! Check the link in my bio for more details and inquiry about the build.", "duration" => 60, "filename" => "/downloads/Vanlife/2024-10-26 This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan/This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan [HEytMmQ0kVk].mp4", "id" => "HEytMmQ0kVk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HEytMmQ0kVk", "playlist_index" => 5, "timestamp" => 1729961789, "title" => "This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan", "upload_date" => "20241026"} 10:53:53.414 [debug] QUERY OK source="sources" db=0.1ms idle=1860.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:53:53.415 [debug] QUERY OK source="sources" db=0.1ms idle=1860.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:53.415 [debug] QUERY OK source="media_items" db=0.4ms idle=1860.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-26 16:56:29Z], 10] 10:53:53.418 [debug] QUERY OK source="media_items" db=2.6ms idle=1031.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This is Horizon. From the 1260 watts extendable solar panels to the modular sliding section of the van, the engineering pinnacle of my van-building career is finally done! The best part is, it’s for sale! Check the link in my bio for more details and inquiry about the build.", "This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan", "81f3bdb4-b8d3-4615-99aa-6532fdb20913", 10, [], 60, false, "HEytMmQ0kVk", "https://www.youtube.com/watch?v=HEytMmQ0kVk", 5, "/downloads/Vanlife/2024-10-26 This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan/This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan [HEytMmQ0kVk].mp4", false, false, true, 1, ~U[2024-10-26 16:56:29Z], ~U[2026-07-11 14:53:53Z], ~U[2026-07-11 14:53:53Z], "This is Horizon. From the 1260 watts extendable solar panels to the modular sliding section of the van, the engineering pinnacle of my van-building career is finally done! The best part is, it’s for sale! Check the link in my bio for more details and inquiry about the build.", "This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan", 10, 60, false, "HEytMmQ0kVk", "https://www.youtube.com/watch?v=HEytMmQ0kVk", "/downloads/Vanlife/2024-10-26 This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan/This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan [HEytMmQ0kVk].mp4", true, ~U[2024-10-26 16:56:29Z]] 10:53:53.419 [debug] QUERY OK source="sources" db=0.2ms idle=33.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:53.419 [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:53:53.419 [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 [10090] 10:53:53.419 [debug] Current batch of media processed. Will check again in 1000ms 10:53:54.420 [debug] Current batch of media processed. Will check again in 1000ms 10:53:55.421 [debug] Current batch of media processed. Will check again in 1000ms 10:53:56.422 [debug] Current batch of media processed. Will check again in 1000ms 10:53:57.423 [debug] Current batch of media processed. Will check again in 1000ms 10:53:58.424 [debug] Current batch of media processed. Will check again in 1000ms 10:53:59.425 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🚀 FREE Training - Zero-Cost Vanlife & More: https://bit.ly/3UO7hUT\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/lucasravizza/\n\nThis has to be the most impressive van conversion that we've featured on the channel in a long time! This campervan combines a highly intelligent design, with an impeccable finish, featuring some of the most hi quality attention to detail I've seen in a van conversion. A true masterpiece!\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "duration" => 926, "filename" => "/downloads/Vanlife/2023-05-07 NEXT LEVEL luxury VAN CONVERSION ⧸⧸ HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐/NEXT LEVEL luxury VAN CONVERSION ⧸⧸ HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐 [7vIwyg-8dO4].mp4", "id" => "7vIwyg-8dO4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7vIwyg-8dO4", "playlist_index" => 6, "timestamp" => 1683471604, "title" => "NEXT LEVEL luxury VAN CONVERSION // HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐", "upload_date" => "20230507"} 10:53:59.426 [debug] QUERY OK source="sources" db=0.2ms idle=871.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:53:59.426 [debug] QUERY OK source="sources" db=0.1ms idle=871.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:59.426 [debug] QUERY OK source="media_items" db=0.3ms idle=871.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-05-07 15:00:04Z], 10] 10:53:59.427 [debug] QUERY OK source="media_items" db=0.6ms idle=872.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🚀 FREE Training - Zero-Cost Vanlife & More: https://bit.ly/3UO7hUT\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/lucasravizza/\n\nThis has to be the most impressive van conversion that we've featured on the channel in a long time! This campervan combines a highly intelligent design, with an impeccable finish, featuring some of the most hi quality attention to detail I've seen in a van conversion. A true masterpiece!\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "NEXT LEVEL luxury VAN CONVERSION // HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐", "70059eb4-f0ee-4d65-aca4-09f080ead893", 10, [], 926, false, "7vIwyg-8dO4", "https://www.youtube.com/watch?v=7vIwyg-8dO4", 6, "/downloads/Vanlife/2023-05-07 NEXT LEVEL luxury VAN CONVERSION ⧸⧸ HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐/NEXT LEVEL luxury VAN CONVERSION ⧸⧸ HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐 [7vIwyg-8dO4].mp4", false, false, false, 1, ~U[2023-05-07 15:00:04Z], ~U[2026-07-11 14:53:59Z], ~U[2026-07-11 14:53:59Z], "🚀 FREE Training - Zero-Cost Vanlife & More: https://bit.ly/3UO7hUT\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/lucasravizza/\n\nThis has to be the most impressive van conversion that we've featured on the channel in a long time! This campervan combines a highly intelligent design, with an impeccable finish, featuring some of the most hi quality attention to detail I've seen in a van conversion. A true masterpiece!\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "NEXT LEVEL luxury VAN CONVERSION // HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐", 10, 926, false, "7vIwyg-8dO4", "https://www.youtube.com/watch?v=7vIwyg-8dO4", "/downloads/Vanlife/2023-05-07 NEXT LEVEL luxury VAN CONVERSION ⧸⧸ HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐/NEXT LEVEL luxury VAN CONVERSION ⧸⧸ HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐 [7vIwyg-8dO4].mp4", false, ~U[2023-05-07 15:00:04Z]] 10:53:59.428 [debug] QUERY OK source="sources" db=0.1ms idle=37.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:53:59.428 [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] 10:53:59.429 [debug] QUERY OK source="media_items" db=0.3ms idle=2.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10092] 10:53:59.429 [debug] Current batch of media processed. Will check again in 1000ms 10:54:00.198 [info] {"source":"oban","duration":241,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:54:00.429 [debug] Current batch of media processed. Will check again in 1000ms 10:54:00.463 [info] {"source":"oban","duration":566,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:54:01.430 [debug] Current batch of media processed. Will check again in 1000ms 10:54:02.431 [debug] Current batch of media processed. Will check again in 1000ms 10:54:03.432 [debug] Current batch of media processed. Will check again in 1000ms 10:54:04.433 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I'm at a loss of words with another creation done by Brandon.\n\nhttps://www.instagram.com/bucksd/\n\n**My Information and Products:**\nBrand Deals/Business Inquiries: brandon@thestation.io\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nPartnerships/Affiliates I personally work with:\nLooking for great batteries? These are the batteries in my Van and Jeep!\nReLion Battery:\nhttp://relionbattery.com?aff=6\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nVanLife Academy from Project VanLife:\nhttps://toccighost--projectvanlife.thrivecart.com/van-life-academy/\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products:\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nGuzzle H2O Water Filtration system:\nhttps://www.guzzleh2o.com?ref=6\nI use the portable one and the built-in one!\n\nLion Energy:\nhttps://lionenergy.com/discount/Ghost15?redirect=%2Fproducts%2Flion-safari-ut-1300%3Fafmc%3D5u\nDiscount Code: Ghost15\n\nEpoxy Used for Woodworking and any Finishing\nhttp://www.totalboat.com/\nDiscount Code: tbghost - for 10% off first order\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nThese are products I used and some I suggest, mostly amazon links:\nBEHIND THE WALLS:\nInsulation - Havelock Wool (link above)\nKilmat 50 mil 50 sqft Sound Deadener: https://amzn.to/33VgkJf\nFrost King FV516 Duct Insulation: https://amzn.to/360N9qT\n\n(*UPDATED PRODUCT LIST COMING SOON*)\nKITCHEN / BATH / WATER\nKitchen Faucet - https://amzn.to/2OVO4R6\nSink - https://amzn.to/2BwIxbT\nShower Head - https://amzn.to/31pfrFI \nShower Hose - https://amzn.to/2Bm8xqc\nShower Valve - https://amzn.to/32q8Ax9\nWater Pump - https://amzn.to/32ps0SD\nWater Accumulator - https://amzn.to/32kwwBX\nElectronic Ball Valve (used for gray water tank) - https://amzn.to/2OUmXWw\n7 Gallon Gray Water Tank - https://amzn.to/32lbQK2\nPortable Induction Burner - https://amzn.to/2BmXEo8\n\nHARDWARE / FINISHES\nRoof Vent - https://amzn.to/2nZFGFa\nDrawer Slides - https://amzn.to/33FzEIK\nDrawer Pulls - https://amzn.to/2BhfDwd\nMattress - https://amzn.to/35L5Hc3\nFloating Ceiling Lights - https://amzn.to/31sqwFP\nUnder Cabinet Lights - https://amzn.to/32vtwTy\nBedside Light - https://amzn.to/2OUs9K0\nCabinet and Drawer Latch - https://amzn.to/35J0v8H\nCabinet Hinge - https://amzn.to/2MM0058\nMurphy Bed Stopper - https://amzn.to/2IXS7IA\nTile (Stick on) - https://amzn.to/31phmda\nToilet - https://amzn.to/2Mnq4oi\n4 USB Outlet - https://amzn.to/32r08NV\n2 USB Outlet with 12v port - https://amzn.to/2VOoKxE\nEpoxy/Resin mix used for Tables - https://amzn.to/2Mp7E6I\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission, only if purchased. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "duration" => 1513, "filename" => "/downloads/Vanlife/2022-09-22 MOST Stealth, Super Luxury, Most EFFICIENT Van EVER/MOST Stealth, Super Luxury, Most EFFICIENT Van EVER [ZSfd8nkhHT8].mp4", "id" => "ZSfd8nkhHT8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZSfd8nkhHT8", "playlist_index" => 7, "timestamp" => 1663855220, "title" => "MOST Stealth, Super Luxury, Most EFFICIENT Van EVER", "upload_date" => "20220922"} 10:54:04.434 [debug] QUERY OK source="sources" db=0.1ms idle=1879.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:54:04.434 [debug] QUERY OK source="sources" db=0.1ms idle=1039.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:04.434 [debug] QUERY OK source="media_items" db=0.3ms idle=879.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-22 14:00:20Z], 10] 10:54:04.438 [debug] QUERY OK source="media_items" db=3.3ms idle=880.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I'm at a loss of words with another creation done by Brandon.\n\nhttps://www.instagram.com/bucksd/\n\n**My Information and Products:**\nBrand Deals/Business Inquiries: brandon@thestation.io\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nPartnerships/Affiliates I personally work with:\nLooking for great batteries? These are the batteries in my Van and Jeep!\nReLion Battery:\nhttp://relionbattery.com?aff=6\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nVanLife Academy from Project VanLife:\nhttps://toccighost--projectvanlife.thrivecart.com/van-life-academy/\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products:\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nGuzzle H2O Water Filtration system:\nhttps://www.guzzleh2o.com?ref=6\nI use the portable one and the built-in one!\n\nLion Energy:\nhttps://lionenergy.com/discount/Ghost15?redirect=%2Fproducts%2Flion-safari-ut-1300%3Fafmc%3D5u\nDiscount Code: Ghost15\n\nEpoxy Used for Woodworking and any Finishing\nhttp://www.totalboat.com/\nDiscount Code: tbghost - for 10% off first order\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nThese are products I used and some I suggest, mostly amazon links:\nBEHIND THE WALLS:\nInsulation - Havelock Wool (link above)\nKilmat 50 mil 50 sqft Sound Deadener: https://amzn.to/33VgkJf\nFrost King FV516 Duct Insulation: https://amzn.to/360N9qT\n\n(*UPDATED PRODUCT LIST COMING SOON*)\nKITCHEN / BATH / WATER\nKitchen Faucet - https://amzn.to/2OVO4R6\nSink - https://amzn.to/2BwIxbT\nShower Head - https://amzn.to/31pfrFI \nShower Hose - https://amzn.to/2Bm8xqc\nShower Valve - https://amzn.to/32q8Ax9\nWater Pump - https://amzn.to/32ps0SD\nWater Accumulator - https://amzn.to/32kwwBX\nElectronic Ball Valve (used for gray water tank) - https://amzn.to/2OUmXWw\n7 Gallon Gray Water Tank - https://amzn.to/32lbQK2\nPortable Induction Burner - https://amzn.to/2BmXEo8\n\nHARDWARE / FINISHES\nRoof Vent - https://amzn.to/2nZFGFa\nDrawer Slides - https://amzn.to/33FzEIK\nDrawer Pulls - https://amzn.to/2BhfDwd\nMattress - https://amzn.to/35L5Hc3\nFloating Ceiling Lights - https://amzn.to/31sqwFP\nUnder Cabinet Lights - https://amzn.to/32vtwTy\nBedside Light - https://amzn.to/2OUs9K0\nCabinet and Drawer Latch - https://amzn.to/35J0v8H\nCabinet Hinge - https://amzn.to/2MM0058\nMurphy Bed Stopper - https://amzn.to/2IXS7IA\nTile (Stick on) - https://amzn.to/31phmda\nToilet - https://amzn.to/2Mnq4oi\n4 USB Outlet - https://amzn.to/32r08NV\n2 USB Outlet with 12v port - https://amzn.to/2VOoKxE\nEpoxy/Resin mix used for Tables - https://amzn.to/2Mp7E6I\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission, only if purchased. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "MOST Stealth, Super Luxury, Most EFFICIENT Van EVER", "27e75244-2495-43e3-827c-f54e18ffbd95", 10, [], 1513, false, "ZSfd8nkhHT8", "https://www.youtube.com/watch?v=ZSfd8nkhHT8", 7, "/downloads/Vanlife/2022-09-22 MOST Stealth, Super Luxury, Most EFFICIENT Van EVER/MOST Stealth, Super Luxury, Most EFFICIENT Van EVER [ZSfd8nkhHT8].mp4", false, false, false, 1, ~U[2022-09-22 14:00:20Z], ~U[2026-07-11 14:54:04Z], ~U[2026-07-11 14:54:04Z], "I'm at a loss of words with another creation done by Brandon.\n\nhttps://www.instagram.com/bucksd/\n\n**My Information and Products:**\nBrand Deals/Business Inquiries: brandon@thestation.io\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nPartnerships/Affiliates I personally work with:\nLooking for great batteries? These are the batteries in my Van and Jeep!\nReLion Battery:\nhttp://relionbattery.com?aff=6\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nVanLife Academy from Project VanLife:\nhttps://toccighost--projectvanlife.thrivecart.com/van-life-academy/\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products:\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nGuzzle H2O Water Filtration system:\nhttps://www.guzzleh2o.com?ref=6\nI use the portable one and the built-in one!\n\nLion Energy:\nhttps://lionenergy.com/discount/Ghost15?redirect=%2Fproducts%2Flion-safari-ut-1300%3Fafmc%3D5u\nDiscount Code: Ghost15\n\nEpoxy Used for Woodworking and any Finishing\nhttp://www.totalboat.com/\nDiscount Code: tbghost - for 10% off first order\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nThese are products I used and some I suggest, mostly amazon links:\nBEHIND THE WALLS:\nInsulation - Havelock Wool (link above)\nKilmat 50 mil 50 sqft Sound Deadener: https://amzn.to/33VgkJf\nFrost King FV516 Duct Insulation: https://amzn.to/360N9qT\n\n(*UPDATED PRODUCT LIST COMING SOON*)\nKITCHEN / BATH / WATER\nKitchen Faucet - https://amzn.to/ (truncated) 10:54:04.439 [debug] QUERY OK source="sources" db=0.1ms idle=43.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:04.439 [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] 10:54:04.439 [debug] QUERY OK source="media_items" db=0.1ms idle=5.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10094] 10:54:04.439 [debug] Current batch of media processed. Will check again in 1000ms 10:54:05.440 [debug] Current batch of media processed. Will check again in 1000ms 10:54:06.441 [debug] Current batch of media processed. Will check again in 1000ms 10:54:07.442 [debug] Current batch of media processed. Will check again in 1000ms 10:54:08.443 [debug] Current batch of media processed. Will check again in 1000ms 10:54:09.444 [debug] Current batch of media processed. Will check again in 1000ms 10:54:10.445 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Go to https://ground.news/superfastmatt to become a smarter news consumer and see every side of every story. Subscribe through my link for 40% off unlimited access this month.\n\nSuperfast Matt is supported by:\nBambu Lab: https://shareasale.com/r.cfm?b=2354730&u=4381285&m=138211&urllink=&afftrack=\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "duration" => 1047, "filename" => "/downloads/Vanlife/2025-02-13 The Laziest Possible Camper Van Conversion/The Laziest Possible Camper Van Conversion [knswcZUSSHo].mkv", "id" => "knswcZUSSHo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=knswcZUSSHo", "playlist_index" => 8, "timestamp" => 1739457915, "title" => "The Laziest Possible Camper Van Conversion", "upload_date" => "20250213"} 10:54:10.445 [debug] QUERY OK source="sources" db=0.1ms idle=891.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:54:10.446 [debug] QUERY OK source="sources" db=0.1ms idle=891.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:10.446 [debug] QUERY OK source="media_items" db=0.4ms idle=891.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-13 14:45:15Z], 10] 10:54:10.448 [debug] QUERY OK source="media_items" db=1.1ms idle=892.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Go to https://ground.news/superfastmatt to become a smarter news consumer and see every side of every story. Subscribe through my link for 40% off unlimited access this month.\n\nSuperfast Matt is supported by:\nBambu Lab: https://shareasale.com/r.cfm?b=2354730&u=4381285&m=138211&urllink=&afftrack=\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "The Laziest Possible Camper Van Conversion", "8bf6226e-bd80-47a4-af9c-4690bfb519ba", 10, [], 1047, false, "knswcZUSSHo", "https://www.youtube.com/watch?v=knswcZUSSHo", 8, "/downloads/Vanlife/2025-02-13 The Laziest Possible Camper Van Conversion/The Laziest Possible Camper Van Conversion [knswcZUSSHo].mkv", false, false, false, 1, ~U[2025-02-13 14:45:15Z], ~U[2026-07-11 14:54:10Z], ~U[2026-07-11 14:54:10Z], "Go to https://ground.news/superfastmatt to become a smarter news consumer and see every side of every story. Subscribe through my link for 40% off unlimited access this month.\n\nSuperfast Matt is supported by:\nBambu Lab: https://shareasale.com/r.cfm?b=2354730&u=4381285&m=138211&urllink=&afftrack=\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "The Laziest Possible Camper Van Conversion", 10, 1047, false, "knswcZUSSHo", "https://www.youtube.com/watch?v=knswcZUSSHo", "/downloads/Vanlife/2025-02-13 The Laziest Possible Camper Van Conversion/The Laziest Possible Camper Van Conversion [knswcZUSSHo].mkv", false, ~U[2025-02-13 14:45:15Z]] 10:54:10.448 [debug] QUERY OK source="sources" db=0.1ms idle=45.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:10.448 [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] 10:54:10.449 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10096] 10:54:10.449 [debug] Current batch of media processed. Will check again in 1000ms 10:54:11.449 [debug] Current batch of media processed. Will check again in 1000ms 10:54:12.450 [debug] Current batch of media processed. Will check again in 1000ms 10:54:13.451 [debug] Current batch of media processed. Will check again in 1000ms 10:54:14.452 [debug] Current batch of media processed. Will check again in 1000ms 10:54:15.453 [debug] Current batch of media processed. Will check again in 1000ms 10:54:16.454 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Check out the new Bambu H2S: https://tidd.ly/47fTxdG\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "duration" => 617, "filename" => "/downloads/Vanlife/2025-08-27 How To Make Your Bed (Disappear)/How To Make Your Bed (Disappear) [_2hj0tR3uwY].mkv", "id" => "_2hj0tR3uwY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_2hj0tR3uwY", "playlist_index" => 9, "timestamp" => 1756321071, "title" => "How To Make Your Bed (Disappear)", "upload_date" => "20250827"} 10:54:16.455 [debug] QUERY OK source="sources" db=0.1ms idle=900.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:54:16.455 [debug] QUERY OK source="sources" db=0.1ms idle=900.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:16.455 [debug] QUERY OK source="media_items" db=0.4ms idle=900.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-27 18:57:51Z], 10] 10:54:16.458 [debug] QUERY OK source="media_items" db=2.7ms idle=901.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out the new Bambu H2S: https://tidd.ly/47fTxdG\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "How To Make Your Bed (Disappear)", "6d63cf2a-83b4-43ae-a704-98056711e0d7", 10, [], 617, false, "_2hj0tR3uwY", "https://www.youtube.com/watch?v=_2hj0tR3uwY", 9, "/downloads/Vanlife/2025-08-27 How To Make Your Bed (Disappear)/How To Make Your Bed (Disappear) [_2hj0tR3uwY].mkv", false, false, false, 1, ~U[2025-08-27 18:57:51Z], ~U[2026-07-11 14:54:16Z], ~U[2026-07-11 14:54:16Z], "Check out the new Bambu H2S: https://tidd.ly/47fTxdG\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "How To Make Your Bed (Disappear)", 10, 617, false, "_2hj0tR3uwY", "https://www.youtube.com/watch?v=_2hj0tR3uwY", "/downloads/Vanlife/2025-08-27 How To Make Your Bed (Disappear)/How To Make Your Bed (Disappear) [_2hj0tR3uwY].mkv", false, ~U[2025-08-27 18:57:51Z]] 10:54:16.459 [debug] QUERY OK source="sources" db=0.2ms idle=48.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:16.459 [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:54:16.459 [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 [10098] 10:54:16.459 [debug] Current batch of media processed. Will check again in 1000ms 10:54:17.460 [debug] Current batch of media processed. Will check again in 1000ms 10:54:18.461 [debug] Current batch of media processed. Will check again in 1000ms 10:54:19.462 [debug] Current batch of media processed. Will check again in 1000ms 10:54:20.463 [debug] Current batch of media processed. Will check again in 1000ms 10:54:21.464 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Bambu Lab Anniversary Sale: https://shareasale.com/r.cfm?b=2781275&u=4381285&m=138211&urllink=&afftrack=\n\nSuperfast Matt is Supported By:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nWizard artwork by: https://www.instagram.com/poyjeee/\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "duration" => 745, "filename" => "/downloads/Vanlife/2025-07-10 The Challenges Of 3D Printing Large Parts/The Challenges Of 3D Printing Large Parts [bMIh2eKaBCY].mkv", "id" => "bMIh2eKaBCY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bMIh2eKaBCY", "playlist_index" => 10, "timestamp" => 1752163922, "title" => "The Challenges Of 3D Printing Large Parts", "upload_date" => "20250710"} 10:54:21.465 [debug] QUERY OK source="sources" db=0.3ms idle=1910.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:54:21.465 [debug] QUERY OK source="sources" db=0.1ms idle=1911.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:21.466 [debug] QUERY OK source="media_items" db=0.3ms idle=1911.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 16:12:02Z], 10] 10:54:21.467 [debug] QUERY OK source="media_items" db=1.2ms idle=1052.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Bambu Lab Anniversary Sale: https://shareasale.com/r.cfm?b=2781275&u=4381285&m=138211&urllink=&afftrack=\n\nSuperfast Matt is Supported By:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nWizard artwork by: https://www.instagram.com/poyjeee/\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "The Challenges Of 3D Printing Large Parts", "990ae53a-4bf9-4e46-b5a4-e344d88837d1", 10, [], 745, false, "bMIh2eKaBCY", "https://www.youtube.com/watch?v=bMIh2eKaBCY", 10, "/downloads/Vanlife/2025-07-10 The Challenges Of 3D Printing Large Parts/The Challenges Of 3D Printing Large Parts [bMIh2eKaBCY].mkv", false, false, false, 2, ~U[2025-07-10 16:12:02Z], ~U[2026-07-11 14:54:21Z], ~U[2026-07-11 14:54:21Z], "Bambu Lab Anniversary Sale: https://shareasale.com/r.cfm?b=2781275&u=4381285&m=138211&urllink=&afftrack=\n\nSuperfast Matt is Supported By:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nWizard artwork by: https://www.instagram.com/poyjeee/\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "The Challenges Of 3D Printing Large Parts", 10, 745, false, "bMIh2eKaBCY", "https://www.youtube.com/watch?v=bMIh2eKaBCY", "/downloads/Vanlife/2025-07-10 The Challenges Of 3D Printing Large Parts/The Challenges Of 3D Printing Large Parts [bMIh2eKaBCY].mkv", false, ~U[2025-07-10 16:12:02Z]] 10:54:21.468 [debug] QUERY OK source="sources" db=0.2ms idle=53.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:21.468 [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] 10:54:21.468 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10100] 10:54:21.468 [debug] Current batch of media processed. Will check again in 1000ms 10:54:22.469 [debug] Current batch of media processed. Will check again in 1000ms 10:54:23.470 [debug] Current batch of media processed. Will check again in 1000ms 10:54:24.471 [debug] Current batch of media processed. Will check again in 1000ms 10:54:25.472 [debug] Current batch of media processed. Will check again in 1000ms 10:54:26.473 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Get the Apex 300 for as low as $900 when you bundle it with the B300K – tax and shipping included. Installment payment options available. Limited quantities available, Click here to order now 👉 https://bit.ly/4dolMHV\n#bluetti #apex300 #rv #van #diy\n\nSuperfast Matt is supported by:\nBambu Lab: https://shareasale.com/r.cfm?b=2354730&u=4381285&m=138211&urllink=&afftrack=\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\nDynamat and Dynaliner were provided for free by Dynamat for a previous project. \n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "duration" => 1222, "filename" => "/downloads/Vanlife/2025-04-29 Insulate Your Camper Van. Or Just Watch Me Do It. Whatever#/Insulate Your Camper Van. Or Just Watch Me Do It. Whatever. [Fs34gommXcI].mkv", "id" => "Fs34gommXcI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Fs34gommXcI", "playlist_index" => 11, "timestamp" => 1745940772, "title" => "Insulate Your Camper Van. Or Just Watch Me Do It. Whatever.", "upload_date" => "20250429"} 10:54:26.473 [debug] QUERY OK source="sources" db=0.2ms idle=1919.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:54:26.474 [debug] QUERY OK source="sources" db=0.1ms idle=1919.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:26.474 [debug] QUERY OK source="media_items" db=0.4ms idle=1919.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-29 15:32:52Z], 10] 10:54:26.476 [debug] QUERY OK source="media_items" db=1.0ms idle=1055.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Get the Apex 300 for as low as $900 when you bundle it with the B300K – tax and shipping included. Installment payment options available. Limited quantities available, Click here to order now 👉 https://bit.ly/4dolMHV\n#bluetti #apex300 #rv #van #diy\n\nSuperfast Matt is supported by:\nBambu Lab: https://shareasale.com/r.cfm?b=2354730&u=4381285&m=138211&urllink=&afftrack=\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\nDynamat and Dynaliner were provided for free by Dynamat for a previous project. \n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "Insulate Your Camper Van. Or Just Watch Me Do It. Whatever.", "81c7cb4c-9145-4156-922a-f3ff3042e794", 10, [], 1222, false, "Fs34gommXcI", "https://www.youtube.com/watch?v=Fs34gommXcI", 11, "/downloads/Vanlife/2025-04-29 Insulate Your Camper Van. Or Just Watch Me Do It. Whatever#/Insulate Your Camper Van. Or Just Watch Me Do It. Whatever. [Fs34gommXcI].mkv", false, false, false, 1, ~U[2025-04-29 15:32:52Z], ~U[2026-07-11 14:54:26Z], ~U[2026-07-11 14:54:26Z], "Get the Apex 300 for as low as $900 when you bundle it with the B300K – tax and shipping included. Installment payment options available. Limited quantities available, Click here to order now 👉 https://bit.ly/4dolMHV\n#bluetti #apex300 #rv #van #diy\n\nSuperfast Matt is supported by:\nBambu Lab: https://shareasale.com/r.cfm?b=2354730&u=4381285&m=138211&urllink=&afftrack=\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\nDynamat and Dynaliner were provided for free by Dynamat for a previous project. \n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "Insulate Your Camper Van. Or Just Watch Me Do It. Whatever.", 10, 1222, false, "Fs34gommXcI", "https://www.youtube.com/watch?v=Fs34gommXcI", "/downloads/Vanlife/2025-04-29 Insulate Your Camper Van. Or Just Watch Me Do It. Whatever#/Insulate Your Camper Van. Or Just Watch Me Do It. Whatever. [Fs34gommXcI].mkv", false, ~U[2025-04-29 15:32:52Z]] 10:54:26.476 [debug] QUERY OK source="sources" db=0.1ms idle=55.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:26.476 [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] 10:54:26.477 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10102] 10:54:26.477 [debug] Current batch of media processed. Will check again in 1000ms 10:54:27.478 [debug] Current batch of media processed. Will check again in 1000ms 10:54:28.479 [debug] Current batch of media processed. Will check again in 1000ms 10:54:29.480 [debug] Current batch of media processed. Will check again in 1000ms 10:54:30.464 [info] {"source":"oban","duration":874,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:54:30.481 [debug] Current batch of media processed. Will check again in 1000ms 10:54:31.482 [debug] Current batch of media processed. Will check again in 1000ms 10:54:32.483 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "This is Andrew's budget Eathroamer truck conversion. Their diy overlanding truck conversion is an epic roamer for a fraction of the cost of an Earthroamer expedition vehicle.\nGET YOUR FREE LMNT SAMPLE PACK AT: https://drinklmnt.com/Florb\nJust pay for shipping\nSubscribe to our new channel: https://www.youtube.com/dylanmagaster2\nBECOME PART OF THE TEAM: https://www.patreon.com/FLORB\n\nFollow Andrew:\nhttps://www.instagram.com/andrew__muse/\nhttps://www.youtube.com/AndrewMuse\n\nFollow me on Social Media\nhttps://www.instagram.com/dylanmagaster\n\n\n\nBusiness inquires or music submissions:\nflorb@floatingorb.earth\n\n\n\nMusic: \nEpidemic Sound Affiliate link: https://mbsy.co/epidemicsound/FLORB\nFlightmode - Chris Shards\nWhen We Come Together (Instrumental Version) - Lindsey Abraham\nMy Own Two Hands - Lindsey Abraham\nBack to the Roots - Lindsey Abraham\nYour Woman - Lindsey Abraham\nSo Perfect - Lindsey Abraham\n\n\nFilmed by \n\nTroy Ozuna\nhttps://www.youtube.com/earthstory\n\nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\nEdited by \n\nJackson Peters\nhttp://jacksonhpeters.com/\nhttps://www.youtube.com/jacksonhpeters\nhttps://vimeo.com/jacksonhpeters\nhttps://www.instagram.com/jacksonhpeters/\n\nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\n\nCAMERA GEAR \nFull Gear List: https://kit.co/DylanMagaster", "duration" => 980, "filename" => "/downloads/Vanlife/2021-02-21 This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer/This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer [2grXkxwSlKg].mp4", "id" => "2grXkxwSlKg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2grXkxwSlKg", "playlist_index" => 12, "timestamp" => 1613925119, "title" => "This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer", "upload_date" => "20210221"} 10:54:32.484 [debug] QUERY OK source="sources" db=0.1ms idle=929.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:54:32.484 [debug] QUERY OK source="sources" db=0.1ms idle=929.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:32.484 [debug] QUERY OK source="media_items" db=0.3ms idle=930.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-21 16:31:59Z], 10] 10:54:32.486 [debug] QUERY OK source="media_items" db=0.8ms idle=930.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This is Andrew's budget Eathroamer truck conversion. Their diy overlanding truck conversion is an epic roamer for a fraction of the cost of an Earthroamer expedition vehicle.\nGET YOUR FREE LMNT SAMPLE PACK AT: https://drinklmnt.com/Florb\nJust pay for shipping\nSubscribe to our new channel: https://www.youtube.com/dylanmagaster2\nBECOME PART OF THE TEAM: https://www.patreon.com/FLORB\n\nFollow Andrew:\nhttps://www.instagram.com/andrew__muse/\nhttps://www.youtube.com/AndrewMuse\n\nFollow me on Social Media\nhttps://www.instagram.com/dylanmagaster\n\n\n\nBusiness inquires or music submissions:\nflorb@floatingorb.earth\n\n\n\nMusic: \nEpidemic Sound Affiliate link: https://mbsy.co/epidemicsound/FLORB\nFlightmode - Chris Shards\nWhen We Come Together (Instrumental Version) - Lindsey Abraham\nMy Own Two Hands - Lindsey Abraham\nBack to the Roots - Lindsey Abraham\nYour Woman - Lindsey Abraham\nSo Perfect - Lindsey Abraham\n\n\nFilmed by \n\nTroy Ozuna\nhttps://www.youtube.com/earthstory\n\nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\nEdited by \n\nJackson Peters\nhttp://jacksonhpeters.com/\nhttps://www.youtube.com/jacksonhpeters\nhttps://vimeo.com/jacksonhpeters\nhttps://www.instagram.com/jacksonhpeters/\n\nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\n\nCAMERA GEAR \nFull Gear List: https://kit.co/DylanMagaster", "This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer", "96c9ab8e-0c8b-4519-ad4c-78f44bd1474a", 10, [], 980, false, "2grXkxwSlKg", "https://www.youtube.com/watch?v=2grXkxwSlKg", 12, "/downloads/Vanlife/2021-02-21 This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer/This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer [2grXkxwSlKg].mp4", false, false, false, 1, ~U[2021-02-21 16:31:59Z], ~U[2026-07-11 14:54:32Z], ~U[2026-07-11 14:54:32Z], "This is Andrew's budget Eathroamer truck conversion. Their diy overlanding truck conversion is an epic roamer for a fraction of the cost of an Earthroamer expedition vehicle.\nGET YOUR FREE LMNT SAMPLE PACK AT: https://drinklmnt.com/Florb\nJust pay for shipping\nSubscribe to our new channel: https://www.youtube.com/dylanmagaster2\nBECOME PART OF THE TEAM: https://www.patreon.com/FLORB\n\nFollow Andrew:\nhttps://www.instagram.com/andrew__muse/\nhttps://www.youtube.com/AndrewMuse\n\nFollow me on Social Media\nhttps://www.instagram.com/dylanmagaster\n\n\n\nBusiness inquires or music submissions:\nflorb@floatingorb.earth\n\n\n\nMusic: \nEpidemic Sound Affiliate link: https://mbsy.co/epidemicsound/FLORB\nFlightmode - Chris Shards\nWhen We Come Together (Instrumental Version) - Lindsey Abraham\nMy Own Two Hands - Lindsey Abraham\nBack to the Roots - Lindsey Abraham\nYour Woman - Lindsey Abraham\nSo Perfect - Lindsey Abraham\n\n\nFilmed by \n\nTroy Ozuna\nhttps://www.youtube.com/earthstory\n\nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\nEdited by \n\nJackson Peters\nhttp://jacksonhpeters.com/\nhttps://www.youtube.com/jacksonhpeters\nhttps://vimeo.com/jacksonhpeters\nhttps://www.instagram.com/jacksonhpeters/\n\nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\n\nCAMERA GEAR \nFull Gear List: https://kit.co/DylanMagaster", "This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer", 10, 980, false, "2grXkxwSlKg", "https://www.youtube.com/watch?v=2grXkxwSlKg", "/downloads/Vanlife/2021-02-21 This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer/This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer [2grXkxwSlKg].mp4", false, ~U[2021-02-21 16:31:59Z]] 10:54:32.486 [debug] QUERY OK source="sources" db=0.1ms idle=56.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:32.486 [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] 10:54:32.486 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10104] 10:54:32.487 [debug] Current batch of media processed. Will check again in 1000ms 10:54:33.487 [debug] Current batch of media processed. Will check again in 1000ms 10:54:34.488 [debug] Current batch of media processed. Will check again in 1000ms 10:54:35.489 [debug] Current batch of media processed. Will check again in 1000ms 10:54:36.490 [debug] Current batch of media processed. Will check again in 1000ms 10:54:37.491 [debug] Current batch of media processed. Will check again in 1000ms 10:54:38.492 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "ConnecTen Internet: Use Discount code FLORB for 25$ off your first order\nhttps://connecteninternet.com/discount/FLORB\n\nSubscribe to our new channel: https://www.youtube.com/dylanmagaster2\nBECOME PART OF THE TEAM: https://www.patreon.com/FLORB\n\nFollow Wolfrigs:\nhttps://www.instagram.com/wolfrigsusa/?hl=en\nhttps://www.wolfrigs.com/\n\nFollow me on Social Media\nhttps://www.instagram.com/dylanmagaster\n\n\n\nBusiness inquires or music submissions:\nflorb@floatingorb.earth\n\n\n\nMusic: \nEpidemic Sound Affiliate link: \nhttps://share.epidemicsound.com/MVDGq\nLet's Have a Good Time - John Runefelt\nFamily Badass - Rockin' For Decades\nThe Aviator - Duke Herrington\nMagic Highway - Carvings\nI'm Not a Flower - par\nNeon Flame - Will Harrison\nEidewalk Shimmy - Guustavv\nWhere's the Party At - John Runefelt\n\nFilmed and edited by \nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\n\n\nCAMERA GEAR \nFull Gear List: https://kit.co/DylanMagaster", "duration" => 836, "filename" => "/downloads/Vanlife/2023-09-11 Veteran Built The Toughest Camper Ever!/Veteran Built The Toughest Camper Ever! [CtxMzS6uBjU].mp4", "id" => "CtxMzS6uBjU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CtxMzS6uBjU", "playlist_index" => 13, "timestamp" => 1694408889, "title" => "Veteran Built The Toughest Camper Ever!", "upload_date" => "20230911"} 10:54:38.493 [debug] QUERY OK source="sources" db=0.1ms idle=938.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:54:38.493 [debug] QUERY OK source="sources" db=0.1ms idle=938.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:38.493 [debug] QUERY OK source="media_items" db=0.3ms idle=938.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-11 05:08:09Z], 10] 10:54:38.494 [debug] QUERY OK source="media_items" db=0.7ms idle=939.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["ConnecTen Internet: Use Discount code FLORB for 25$ off your first order\nhttps://connecteninternet.com/discount/FLORB\n\nSubscribe to our new channel: https://www.youtube.com/dylanmagaster2\nBECOME PART OF THE TEAM: https://www.patreon.com/FLORB\n\nFollow Wolfrigs:\nhttps://www.instagram.com/wolfrigsusa/?hl=en\nhttps://www.wolfrigs.com/\n\nFollow me on Social Media\nhttps://www.instagram.com/dylanmagaster\n\n\n\nBusiness inquires or music submissions:\nflorb@floatingorb.earth\n\n\n\nMusic: \nEpidemic Sound Affiliate link: \nhttps://share.epidemicsound.com/MVDGq\nLet's Have a Good Time - John Runefelt\nFamily Badass - Rockin' For Decades\nThe Aviator - Duke Herrington\nMagic Highway - Carvings\nI'm Not a Flower - par\nNeon Flame - Will Harrison\nEidewalk Shimmy - Guustavv\nWhere's the Party At - John Runefelt\n\nFilmed and edited by \nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\n\n\nCAMERA GEAR \nFull Gear List: https://kit.co/DylanMagaster", "Veteran Built The Toughest Camper Ever!", "ed2b33f5-3f72-47f4-b4de-81127f6614a0", 10, [], 836, false, "CtxMzS6uBjU", "https://www.youtube.com/watch?v=CtxMzS6uBjU", 13, "/downloads/Vanlife/2023-09-11 Veteran Built The Toughest Camper Ever!/Veteran Built The Toughest Camper Ever! [CtxMzS6uBjU].mp4", false, false, false, 1, ~U[2023-09-11 05:08:09Z], ~U[2026-07-11 14:54:38Z], ~U[2026-07-11 14:54:38Z], "ConnecTen Internet: Use Discount code FLORB for 25$ off your first order\nhttps://connecteninternet.com/discount/FLORB\n\nSubscribe to our new channel: https://www.youtube.com/dylanmagaster2\nBECOME PART OF THE TEAM: https://www.patreon.com/FLORB\n\nFollow Wolfrigs:\nhttps://www.instagram.com/wolfrigsusa/?hl=en\nhttps://www.wolfrigs.com/\n\nFollow me on Social Media\nhttps://www.instagram.com/dylanmagaster\n\n\n\nBusiness inquires or music submissions:\nflorb@floatingorb.earth\n\n\n\nMusic: \nEpidemic Sound Affiliate link: \nhttps://share.epidemicsound.com/MVDGq\nLet's Have a Good Time - John Runefelt\nFamily Badass - Rockin' For Decades\nThe Aviator - Duke Herrington\nMagic Highway - Carvings\nI'm Not a Flower - par\nNeon Flame - Will Harrison\nEidewalk Shimmy - Guustavv\nWhere's the Party At - John Runefelt\n\nFilmed and edited by \nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\n\n\nCAMERA GEAR \nFull Gear List: https://kit.co/DylanMagaster", "Veteran Built The Toughest Camper Ever!", 10, 836, false, "CtxMzS6uBjU", "https://www.youtube.com/watch?v=CtxMzS6uBjU", "/downloads/Vanlife/2023-09-11 Veteran Built The Toughest Camper Ever!/Veteran Built The Toughest Camper Ever! [CtxMzS6uBjU].mp4", false, ~U[2023-09-11 05:08:09Z]] 10:54:38.495 [debug] QUERY OK source="sources" db=0.1ms idle=57.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:38.495 [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] 10:54:38.495 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10106] 10:54:38.495 [debug] Current batch of media processed. Will check again in 1000ms 10:54:39.496 [debug] Current batch of media processed. Will check again in 1000ms 10:54:40.497 [debug] Current batch of media processed. Will check again in 1000ms 10:54:41.498 [debug] Current batch of media processed. Will check again in 1000ms 10:54:42.499 [debug] Current batch of media processed. Will check again in 1000ms 10:54:43.500 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Basil Lynch is the owner of this 4x4 F250 that has been converted into an epic camper. Basil plans to full-time in his truck in the near future.\nVisit http://dollarshaveclub.com/Dylan to try Dollar Shave Club today! \nBECOME PART OF THE TEAM: https://www.patreon.com/dylanmagaster\n\nThe most helpful book I've ever bought: https://goo.gl/8YEUSL\n\nThis video was sponsored by Dollar Shave Club\n\nFollow Basil Lynch:\nhttps://www.instagram.com/basillynch/\nhttps://www.basillynch.com/\n\nFollow me on Social Media\nhttps://www.twitter.com/dylanmagaster\nhttps://www.instagram.com/dylanmagaster\n\nBusiness inquires or music submissions:\nbusiness@dylanmagaster.com\n\nMusic: \nEpidemic Sound: https://goo.gl/v2TzDb\nDancing On The Tables (Instrumental Version) - Elias Näslin\nMade By Man 1 - Anders Bothén\nWhen Your Heart Breaks (Instrumental Version) - Mondays\n\nSource Footage:\nBasil Lynch\nhttps://www.basillynch.com/\nhttps://www.instagram.com/basillynch/\n\n\nCAMERA GEAR \nFull Gear List: https://kit.com/DylanMagaster\n\n\n\nThis ad was shot with the help of \nRael Cohen \nReyna Lorenzo \n\nSpecial thanks to the Patrons: \nPaddy McCann, Iain Price, Abel Zyl, Jens Lennartsson, Amor Gebreel, interlooper42, Reinoud Vaandrager, Alisa DeGeorge, Brian Schneider, Cōsta Boutsikaris, Jude Waguespack, Larry Coonrod, Peter Vollers, Aaron Lane-Davies, Paulo Senra, Jhan Bent, Michael Taddeo, Two Cowboys, Nicholas John Celestin, Curtis Thornburg, Nico Vergara, Yuzuru Sato, Amit Shetty, Jessica Nigri, Ben Sullins, Constance Turner, isaac, Reg Prahalad, Matt Christie, Paul Howson, Philipp Stangenberg, Matt Christie, GlobalAlight, TJ Prince, Kombi Life, Steven Larcher, Vilhelm Borg Pedersen, Anders L. Jakobsen, Stefan Kamph, Bert Aerts, Mathew Mcpaul, Anna French, Luke Lewis, Eric A Phillips, Janet Frazier, Maria Cristina Henning, Noah Lone, Craig Mackay, Joyce Smith, Sandra Orwig, Marc Duncan, Brittany Simon, Tyran Fuller, Larry Lazaro, Dara Dziedzic, Pablo Cimadevila, Alice Le, Abi, and Lou Kruse", "duration" => 683, "filename" => "/downloads/Vanlife/2018-02-21 Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel/Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel [493PUYz09l0].mp4", "id" => "493PUYz09l0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=493PUYz09l0", "playlist_index" => 14, "timestamp" => 1519254294, "title" => "Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel", "upload_date" => "20180221"} 10:54:43.501 [debug] QUERY OK source="sources" db=0.1ms idle=1946.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:54:43.501 [debug] QUERY OK source="sources" db=0.1ms idle=1946.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:43.501 [debug] QUERY OK source="media_items" db=0.4ms idle=1946.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2018-02-21 23:04:54Z], 10] 10:54:43.503 [debug] QUERY OK source="media_items" db=0.9ms idle=1061.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Basil Lynch is the owner of this 4x4 F250 that has been converted into an epic camper. Basil plans to full-time in his truck in the near future.\nVisit http://dollarshaveclub.com/Dylan to try Dollar Shave Club today! \nBECOME PART OF THE TEAM: https://www.patreon.com/dylanmagaster\n\nThe most helpful book I've ever bought: https://goo.gl/8YEUSL\n\nThis video was sponsored by Dollar Shave Club\n\nFollow Basil Lynch:\nhttps://www.instagram.com/basillynch/\nhttps://www.basillynch.com/\n\nFollow me on Social Media\nhttps://www.twitter.com/dylanmagaster\nhttps://www.instagram.com/dylanmagaster\n\nBusiness inquires or music submissions:\nbusiness@dylanmagaster.com\n\nMusic: \nEpidemic Sound: https://goo.gl/v2TzDb\nDancing On The Tables (Instrumental Version) - Elias Näslin\nMade By Man 1 - Anders Bothén\nWhen Your Heart Breaks (Instrumental Version) - Mondays\n\nSource Footage:\nBasil Lynch\nhttps://www.basillynch.com/\nhttps://www.instagram.com/basillynch/\n\n\nCAMERA GEAR \nFull Gear List: https://kit.com/DylanMagaster\n\n\n\nThis ad was shot with the help of \nRael Cohen \nReyna Lorenzo \n\nSpecial thanks to the Patrons: \nPaddy McCann, Iain Price, Abel Zyl, Jens Lennartsson, Amor Gebreel, interlooper42, Reinoud Vaandrager, Alisa DeGeorge, Brian Schneider, Cōsta Boutsikaris, Jude Waguespack, Larry Coonrod, Peter Vollers, Aaron Lane-Davies, Paulo Senra, Jhan Bent, Michael Taddeo, Two Cowboys, Nicholas John Celestin, Curtis Thornburg, Nico Vergara, Yuzuru Sato, Amit Shetty, Jessica Nigri, Ben Sullins, Constance Turner, isaac, Reg Prahalad, Matt Christie, Paul Howson, Philipp Stangenberg, Matt Christie, GlobalAlight, TJ Prince, Kombi Life, Steven Larcher, Vilhelm Borg Pedersen, Anders L. Jakobsen, Stefan Kamph, Bert Aerts, Mathew Mcpaul, Anna French, Luke Lewis, Eric A Phillips, Janet Frazier, Maria Cristina Henning, Noah Lone, Craig Mackay, Joyce Smith, Sandra Orwig, Marc Duncan, Brittany Simon, Tyran Fuller, Larry Lazaro, Dara Dziedzic, Pablo Cimadevila, Alice Le, Abi, and Lou Kruse", "Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel", "11c7abd9-f036-43ea-aa59-a39208dee0f7", 10, [], 683, false, "493PUYz09l0", "https://www.youtube.com/watch?v=493PUYz09l0", 14, "/downloads/Vanlife/2018-02-21 Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel/Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel [493PUYz09l0].mp4", false, false, false, 1, ~U[2018-02-21 23:04:54Z], ~U[2026-07-11 14:54:43Z], ~U[2026-07-11 14:54:43Z], "Basil Lynch is the owner of this 4x4 F250 that has been converted into an epic camper. Basil plans to full-time in his truck in the near future.\nVisit http://dollarshaveclub.com/Dylan to try Dollar Shave Club today! \nBECOME PART OF THE TEAM: https://www.patreon.com/dylanmagaster\n\nThe most helpful book I've ever bought: https://goo.gl/8YEUSL\n\nThis video was sponsored by Dollar Shave Club\n\nFollow Basil Lynch:\nhttps://www.instagram.com/basillynch/\nhttps://www.basillynch.com/\n\nFollow me on Social Media\nhttps://www.twitter.com/dylanmagaster\nhttps://www.instagram.com/dylanmagaster\n\nBusiness inquires or music submissions:\nbusiness@dylanmagaster.com\n\nMusic: \nEpidemic Sound: https://goo.gl/v2TzDb\nDancing On The Tables (Instrumental Version) - Elias Näslin\nMade By Man 1 - Anders Bothén\nWhen Your Heart Breaks (Instrumental Version) - Mondays\n\nSource Footage:\nBasil Lynch\nhttps://www.basillynch.com/\nhttps://www.instagram.com/basillynch/\n\n\nCAMERA GEAR \nFull Gear List: https://kit.com/DylanMagaster\n\n\n\nThis ad was shot with the help of \nRael Cohen \nReyna Lorenzo \n\nSpecial thanks to the Patrons: \nPaddy McCann, Iain Price, Abel Zyl, Jens Lennartsson, Amor Gebreel, interlooper42, Reinoud Vaandrager, Alisa DeGeorge, Brian Schneider, Cōsta Boutsikaris, Jude Waguespack, Larry Coonrod, Peter Vollers, Aaron Lane-Davies, Paulo Senra, Jhan Bent, Michael Taddeo, Two Cowboys, Nicholas John Celestin, Curtis Thornburg, Nico Vergara, Yuzuru Sato, Amit Shetty, Jessica Nigri, Ben Sullins, Constance Turner, isaac, Reg Prahalad, Matt Christie, Paul Howson, Philipp Stangenberg, Matt Christie, GlobalAlight, TJ Prince, Kombi Life, Steven Larcher, Vilhelm Borg Pedersen, Anders L. Jakobsen, Stefan Kamph, Bert Aerts, Mathew Mcpaul, Anna French, Luke Lewis, Eric A Phillips, Janet Frazier, Maria Cristina Henning, Noah Lone, Craig Mackay, Joyce Smith, Sandra Orwig, Marc Duncan, Brittany Simon, Tyran Fuller, Larry Lazaro, Dara Dziedzic, Pablo Cimadevila, Alice Le, Abi, and Lou Kruse", "Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel", 10, 683, false, "493PUYz09l0", "https://www.youtube.com/watch?v=493PUYz09l0", "/downloads/Vanlife/2018-02-21 Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel/Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel [493PUYz09l0].mp4", false, ~U[2018-02-21 23:04:54Z]] 10:54:43.503 [debug] QUERY OK source="sources" db=0.1ms idle=61.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:43.503 [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] 10:54:43.504 [debug] QUERY OK source="media_items" db=0.1ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10108] 10:54:43.504 [debug] Current batch of media processed. Will check again in 1000ms 10:54:44.504 [debug] Current batch of media processed. Will check again in 1000ms 10:54:45.505 [debug] Current batch of media processed. Will check again in 1000ms 10:54:46.506 [debug] Current batch of media processed. Will check again in 1000ms 10:54:47.507 [debug] Current batch of media processed. Will check again in 1000ms 10:54:48.508 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Thanks to Brilliant for sponsoring this video. Support the channel and get 30 days free at: https://brilliant.org/SuperfastMatt/\nThe first 200 people to sign up will get 20% off Brilliant's annual premium subscription.\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\n\nEquipment I used (affiliate links):\nDiamond lapping discs https://amzn.to/3L0XgQy\nTungsten chartreuse https://amzn.to/41x090S and white https://amzn.to/4057x2E\nPrimeWeld 225X Welder https://amzn.to/3zXzlv8 (This is the smaller one than I bought, but if I were to do it again, I’d buy this one)\nHolder to grind tungsten: https://amzn.to/41qLYKY\nCK20 water cooled torch: https://amzn.to/3L3fam2\nExcellent ESAB welding helmet: https://amzn.to/3UC1hOy\nGood inexpensive welding jacket: https://amzn.to/41rU8mk\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nGet Your SFM Merch: https://superfastmatt.creator-spring.com/listing/all-hail-the-algorithm\nJoin The Discord: https://discord.gg/hwBSkfThtP\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "duration" => 1226, "filename" => "/downloads/Vanlife/2023-04-15 After 20 Years Of Welding, I Learn How To Weld/After 20 Years Of Welding, I Learn How To Weld [jPFtJLytX-U].mkv", "id" => "jPFtJLytX-U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jPFtJLytX-U", "playlist_index" => 15, "timestamp" => 1681570800, "title" => "After 20 Years Of Welding, I Learn How To Weld", "upload_date" => "20230415"} 10:54:48.509 [debug] QUERY OK source="sources" db=0.1ms idle=1954.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:54:48.509 [debug] QUERY OK source="sources" db=0.1ms idle=1954.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:48.509 [debug] QUERY OK source="media_items" db=0.4ms idle=1954.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-15 15:00:00Z], 10] 10:54:48.511 [debug] QUERY OK source="media_items" db=0.7ms idle=1061.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Thanks to Brilliant for sponsoring this video. Support the channel and get 30 days free at: https://brilliant.org/SuperfastMatt/\nThe first 200 people to sign up will get 20% off Brilliant's annual premium subscription.\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\n\nEquipment I used (affiliate links):\nDiamond lapping discs https://amzn.to/3L0XgQy\nTungsten chartreuse https://amzn.to/41x090S and white https://amzn.to/4057x2E\nPrimeWeld 225X Welder https://amzn.to/3zXzlv8 (This is the smaller one than I bought, but if I were to do it again, I’d buy this one)\nHolder to grind tungsten: https://amzn.to/41qLYKY\nCK20 water cooled torch: https://amzn.to/3L3fam2\nExcellent ESAB welding helmet: https://amzn.to/3UC1hOy\nGood inexpensive welding jacket: https://amzn.to/41rU8mk\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nGet Your SFM Merch: https://superfastmatt.creator-spring.com/listing/all-hail-the-algorithm\nJoin The Discord: https://discord.gg/hwBSkfThtP\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "After 20 Years Of Welding, I Learn How To Weld", "7afca419-e397-438c-b814-68b289701af1", 10, [], 1226, false, "jPFtJLytX-U", "https://www.youtube.com/watch?v=jPFtJLytX-U", 15, "/downloads/Vanlife/2023-04-15 After 20 Years Of Welding, I Learn How To Weld/After 20 Years Of Welding, I Learn How To Weld [jPFtJLytX-U].mkv", false, false, false, 1, ~U[2023-04-15 15:00:00Z], ~U[2026-07-11 14:54:48Z], ~U[2026-07-11 14:54:48Z], "Thanks to Brilliant for sponsoring this video. Support the channel and get 30 days free at: https://brilliant.org/SuperfastMatt/\nThe first 200 people to sign up will get 20% off Brilliant's annual premium subscription.\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\n\nEquipment I used (affiliate links):\nDiamond lapping discs https://amzn.to/3L0XgQy\nTungsten chartreuse https://amzn.to/41x090S and white https://amzn.to/4057x2E\nPrimeWeld 225X Welder https://amzn.to/3zXzlv8 (This is the smaller one than I bought, but if I were to do it again, I’d buy this one)\nHolder to grind tungsten: https://amzn.to/41qLYKY\nCK20 water cooled torch: https://amzn.to/3L3fam2\nExcellent ESAB welding helmet: https://amzn.to/3UC1hOy\nGood inexpensive welding jacket: https://amzn.to/41rU8mk\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nGet Your SFM Merch: https://superfastmatt.creator-spring.com/listing/all-hail-the-algorithm\nJoin The Discord: https://discord.gg/hwBSkfThtP\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "After 20 Years Of Welding, I Learn How To Weld", 10, 1226, false, "jPFtJLytX-U", "https://www.youtube.com/watch?v=jPFtJLytX-U", "/downloads/Vanlife/2023-04-15 After 20 Years Of Welding, I Learn How To Weld/After 20 Years Of Welding, I Learn How To Weld [jPFtJLytX-U].mkv", false, ~U[2023-04-15 15:00:00Z]] 10:54:48.511 [debug] QUERY OK source="sources" db=0.1ms idle=61.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:48.511 [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] 10:54:48.511 [debug] QUERY OK source="media_items" db=0.1ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10110] 10:54:48.511 [debug] Current batch of media processed. Will check again in 1000ms 10:54:49.512 [debug] Current batch of media processed. Will check again in 1000ms 10:54:50.513 [debug] Current batch of media processed. Will check again in 1000ms 10:54:51.514 [debug] Current batch of media processed. Will check again in 1000ms 10:54:52.515 [debug] Current batch of media processed. Will check again in 1000ms 10:54:53.516 [debug] Current batch of media processed. Will check again in 1000ms 10:54:54.517 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Watch until the end to find out what our next project is going to be! (HINT: it's HUGE).\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \n\nFolding Trash Can: https://amzn.to/2QysDc7\nDog Food Bin: https://amzn.to/3b70zDN\nMini Instant Pot: https://amzn.to/3u8h2Pw\nAutomatic Dish Soap Dispenser: https://amzn.to/2Si3gfb\nShower Soap Dispenser: https://amzn.to/3e5pucK\n\nhttps://www.trailtestedmfg.com/shop\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\nRenogy 10% Discount Code: ambitionstrikes\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en", "duration" => 1028, "filename" => "/downloads/Vanlife/2021-04-28 Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!)/Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!) [rO6vQnjdkEI].mp4", "id" => "rO6vQnjdkEI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rO6vQnjdkEI", "playlist_index" => 16, "timestamp" => 1619618416, "title" => "Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!)", "upload_date" => "20210428"} 10:54:54.517 [debug] QUERY OK source="sources" db=0.1ms idle=963.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:54:54.518 [debug] QUERY OK source="sources" db=0.1ms idle=963.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:54.518 [debug] QUERY OK source="media_items" db=0.3ms idle=963.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-04-28 14:00:16Z], 10] 10:54:54.519 [debug] QUERY OK source="media_items" db=0.7ms idle=964.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Watch until the end to find out what our next project is going to be! (HINT: it's HUGE).\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \n\nFolding Trash Can: https://amzn.to/2QysDc7\nDog Food Bin: https://amzn.to/3b70zDN\nMini Instant Pot: https://amzn.to/3u8h2Pw\nAutomatic Dish Soap Dispenser: https://amzn.to/2Si3gfb\nShower Soap Dispenser: https://amzn.to/3e5pucK\n\nhttps://www.trailtestedmfg.com/shop\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\nRenogy 10% Discount Code: ambitionstrikes\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en", "Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!)", "0f7ee7b3-774f-4176-8cbd-ad107f646649", 10, [], 1028, false, "rO6vQnjdkEI", "https://www.youtube.com/watch?v=rO6vQnjdkEI", 16, "/downloads/Vanlife/2021-04-28 Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!)/Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!) [rO6vQnjdkEI].mp4", false, false, false, 1, ~U[2021-04-28 14:00:16Z], ~U[2026-07-11 14:54:54Z], ~U[2026-07-11 14:54:54Z], "Watch until the end to find out what our next project is going to be! (HINT: it's HUGE).\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \n\nFolding Trash Can: https://amzn.to/2QysDc7\nDog Food Bin: https://amzn.to/3b70zDN\nMini Instant Pot: https://amzn.to/3u8h2Pw\nAutomatic Dish Soap Dispenser: https://amzn.to/2Si3gfb\nShower Soap Dispenser: https://amzn.to/3e5pucK\n\nhttps://www.trailtestedmfg.com/shop\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\nRenogy 10% Discount Code: ambitionstrikes\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en", "Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!)", 10, 1028, false, "rO6vQnjdkEI", "https://www.youtube.com/watch?v=rO6vQnjdkEI", "/downloads/Vanlife/2021-04-28 Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!)/Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!) [rO6vQnjdkEI].mp4", false, ~U[2021-04-28 14:00:16Z]] 10:54:54.520 [debug] QUERY OK source="sources" db=0.1ms idle=62.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:54.520 [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] 10:54:54.520 [debug] QUERY OK source="media_items" db=0.1ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10112] 10:54:54.520 [debug] Current batch of media processed. Will check again in 1000ms 10:54:55.521 [debug] Current batch of media processed. Will check again in 1000ms 10:54:56.522 [debug] Current batch of media processed. Will check again in 1000ms 10:54:57.523 [debug] Current batch of media processed. Will check again in 1000ms 10:54:58.524 [debug] Current batch of media processed. Will check again in 1000ms 10:54:59.525 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Watch as we turn a Rare Humvee into a cozy camper in under 30 minutes. We've put over 1000 hours into this project, and now you can see the whole process sped up.\n\nFrom planning to building, you'll see every step in fast motion. We've found creative solutions to make this camper comfortable and practical for all off-road adventures.\n\nWhether you're into DIY projects, camping, or just curious, there's something for you here. So sit back, relax, and enjoy the show. Don't forget to like and subscribe.\n\n🎥 Full Humvee Tour Video: https://youtu.be/xlxCad5TeLY\n\n✅ Other Videos You Might Be Interested In Watching: \n\n👉 Humvee Camper Conversion: Installing Diesel Heater & Lightbars | Roaming Venture\nhttps://www.youtube.com/watch?v=J7P51eOalkY\n\n👉 Humvee Conversion: Makeover with Raptor Liner | Roaming Venture\nhttps://www.youtube.com/watch?v=cyQjv0cbols\n\n👉 Transforming My Humvee into a Dream Camper | Roaming Venture\nhttps://www.youtube.com/watch?v=2B1hu0rfD7o\n\n👉 Installing Water System In My Humvee Camper - Humvee Conversion | Roaming Venture\nhttps://www.youtube.com/watch?v=MoV7mR9CNgM \n\n#humvee #campervan #timelapsevideo", "duration" => 1498, "filename" => "/downloads/Vanlife/2024-03-27 DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested!/DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested! [Z0Mqxe5kIH0].mkv", "id" => "Z0Mqxe5kIH0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Z0Mqxe5kIH0", "playlist_index" => 17, "timestamp" => 1711544841, "title" => "DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested!", "upload_date" => "20240327"} 10:54:59.526 [debug] QUERY OK source="sources" db=0.1ms idle=1971.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:54:59.526 [debug] QUERY OK source="sources" db=0.0ms idle=1971.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:59.526 [debug] QUERY OK source="media_items" db=0.3ms idle=1971.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-27 13:07:21Z], 10] 10:54:59.529 [debug] QUERY OK source="media_items" db=2.3ms idle=1064.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Watch as we turn a Rare Humvee into a cozy camper in under 30 minutes. We've put over 1000 hours into this project, and now you can see the whole process sped up.\n\nFrom planning to building, you'll see every step in fast motion. We've found creative solutions to make this camper comfortable and practical for all off-road adventures.\n\nWhether you're into DIY projects, camping, or just curious, there's something for you here. So sit back, relax, and enjoy the show. Don't forget to like and subscribe.\n\n🎥 Full Humvee Tour Video: https://youtu.be/xlxCad5TeLY\n\n✅ Other Videos You Might Be Interested In Watching: \n\n👉 Humvee Camper Conversion: Installing Diesel Heater & Lightbars | Roaming Venture\nhttps://www.youtube.com/watch?v=J7P51eOalkY\n\n👉 Humvee Conversion: Makeover with Raptor Liner | Roaming Venture\nhttps://www.youtube.com/watch?v=cyQjv0cbols\n\n👉 Transforming My Humvee into a Dream Camper | Roaming Venture\nhttps://www.youtube.com/watch?v=2B1hu0rfD7o\n\n👉 Installing Water System In My Humvee Camper - Humvee Conversion | Roaming Venture\nhttps://www.youtube.com/watch?v=MoV7mR9CNgM \n\n#humvee #campervan #timelapsevideo", "DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested!", "d0790439-0cd4-4842-877f-01f5b7432fac", 10, [], 1498, false, "Z0Mqxe5kIH0", "https://www.youtube.com/watch?v=Z0Mqxe5kIH0", 17, "/downloads/Vanlife/2024-03-27 DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested!/DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested! [Z0Mqxe5kIH0].mkv", false, false, false, 1, ~U[2024-03-27 13:07:21Z], ~U[2026-07-11 14:54:59Z], ~U[2026-07-11 14:54:59Z], "Watch as we turn a Rare Humvee into a cozy camper in under 30 minutes. We've put over 1000 hours into this project, and now you can see the whole process sped up.\n\nFrom planning to building, you'll see every step in fast motion. We've found creative solutions to make this camper comfortable and practical for all off-road adventures.\n\nWhether you're into DIY projects, camping, or just curious, there's something for you here. So sit back, relax, and enjoy the show. Don't forget to like and subscribe.\n\n🎥 Full Humvee Tour Video: https://youtu.be/xlxCad5TeLY\n\n✅ Other Videos You Might Be Interested In Watching: \n\n👉 Humvee Camper Conversion: Installing Diesel Heater & Lightbars | Roaming Venture\nhttps://www.youtube.com/watch?v=J7P51eOalkY\n\n👉 Humvee Conversion: Makeover with Raptor Liner | Roaming Venture\nhttps://www.youtube.com/watch?v=cyQjv0cbols\n\n👉 Transforming My Humvee into a Dream Camper | Roaming Venture\nhttps://www.youtube.com/watch?v=2B1hu0rfD7o\n\n👉 Installing Water System In My Humvee Camper - Humvee Conversion | Roaming Venture\nhttps://www.youtube.com/watch?v=MoV7mR9CNgM \n\n#humvee #campervan #timelapsevideo", "DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested!", 10, 1498, false, "Z0Mqxe5kIH0", "https://www.youtube.com/watch?v=Z0Mqxe5kIH0", "/downloads/Vanlife/2024-03-27 DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested!/DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested! [Z0Mqxe5kIH0].mkv", false, ~U[2024-03-27 13:07:21Z]] 10:54:59.529 [debug] QUERY OK source="sources" db=0.1ms idle=66.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:54:59.530 [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:54:59.530 [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 [10114] 10:54:59.530 [debug] Current batch of media processed. Will check again in 1000ms 10:55:00.199 [info] {"source":"oban","duration":166,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:55:00.465 [info] {"source":"oban","duration":516,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:55:00.531 [debug] Current batch of media processed. Will check again in 1000ms 10:55:01.532 [debug] Current batch of media processed. Will check again in 1000ms 10:55:02.533 [debug] Current batch of media processed. Will check again in 1000ms 10:55:03.534 [debug] Current batch of media processed. Will check again in 1000ms 10:55:04.535 [debug] Current batch of media processed. Will check again in 1000ms 10:55:05.536 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 29, "filename" => "/downloads/Vanlife/2024-06-20 Insane Truck Build: F550 Earth Roamer/Insane Truck Build: F550 Earth Roamer [VTLrLAjCZHc].mp4", "id" => "VTLrLAjCZHc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VTLrLAjCZHc", "playlist_index" => 18, "timestamp" => 1718866818, "title" => "Insane Truck Build: F550 Earth Roamer", "upload_date" => "20240620"} 10:55:05.537 [debug] QUERY OK source="sources" db=0.2ms idle=1982.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:55:05.537 [debug] QUERY OK source="sources" db=0.1ms idle=1068.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:05.537 [debug] QUERY OK source="media_items" db=0.4ms idle=982.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 07:00:18Z], 10] 10:55:05.539 [debug] QUERY OK source="media_items" db=1.1ms idle=983.5ms INSERT INTO "media_items" AS m0 ("title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Insane Truck Build: F550 Earth Roamer", "1f17b0fa-b133-4c97-b8ac-94ad9c2c71ff", 10, [], 29, false, "VTLrLAjCZHc", "https://www.youtube.com/watch?v=VTLrLAjCZHc", 18, "/downloads/Vanlife/2024-06-20 Insane Truck Build: F550 Earth Roamer/Insane Truck Build: F550 Earth Roamer [VTLrLAjCZHc].mp4", false, false, true, 1, ~U[2024-06-20 07:00:18Z], ~U[2026-07-11 14:55:05Z], ~U[2026-07-11 14:55:05Z], "", "Insane Truck Build: F550 Earth Roamer", 10, 29, false, "VTLrLAjCZHc", "https://www.youtube.com/watch?v=VTLrLAjCZHc", "/downloads/Vanlife/2024-06-20 Insane Truck Build: F550 Earth Roamer/Insane Truck Build: F550 Earth Roamer [VTLrLAjCZHc].mp4", true, ~U[2024-06-20 07:00:18Z]] 10:55:05.539 [debug] QUERY OK source="sources" db=0.1ms idle=69.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:05.539 [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] 10:55:05.540 [debug] QUERY OK source="media_items" db=0.1ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10115] 10:55:05.540 [debug] Current batch of media processed. Will check again in 1000ms 10:55:06.540 [debug] Current batch of media processed. Will check again in 1000ms 10:55:07.541 [debug] Current batch of media processed. Will check again in 1000ms 10:55:08.542 [debug] Current batch of media processed. Will check again in 1000ms 10:55:09.543 [debug] Current batch of media processed. Will check again in 1000ms 10:55:10.544 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We spent 2.5 months building the DIY off-road RV of our dreams! From a pile of aluminum to a turnkey camper, see just how much work went into building this epic adventure machine.\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► WATCH - Complete Camper Build Series: https://bit.ly/3k6qQWv\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nSupport our channel by subscribing and dropping a comment below! We are already cooking up the next big project and can't wait to share it with you all.\n\nInstagram: restless_redhead\nWebsite: www.trailtestedmfg.com\n\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nSong List:\nYou Blow My Mind - Hallman\nWhite Gold - Tommy Ljundberg\nYour Vibe - Yomoti\nUp Higher - Sven Karlsson\nCalling Me - Ooyy", "duration" => 687, "filename" => "/downloads/Vanlife/2021-02-27 TIMELAPSE- Couple Builds DIY RV (Start To Finish)/TIMELAPSE- Couple Builds DIY RV (Start To Finish) [7mQygf8-LUU].mp4", "id" => "7mQygf8-LUU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7mQygf8-LUU", "playlist_index" => 19, "timestamp" => 1614430802, "title" => "TIMELAPSE- Couple Builds DIY RV (Start To Finish)", "upload_date" => "20210227"} 10:55:10.545 [debug] QUERY OK source="sources" db=0.2ms idle=1990.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:55:10.545 [debug] QUERY OK source="sources" db=0.1ms idle=1990.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:10.546 [debug] QUERY OK source="media_items" db=0.4ms idle=1991.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-27 13:00:02Z], 10] 10:55:10.548 [debug] QUERY OK source="media_items" db=1.3ms idle=1072.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We spent 2.5 months building the DIY off-road RV of our dreams! From a pile of aluminum to a turnkey camper, see just how much work went into building this epic adventure machine.\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► WATCH - Complete Camper Build Series: https://bit.ly/3k6qQWv\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nSupport our channel by subscribing and dropping a comment below! We are already cooking up the next big project and can't wait to share it with you all.\n\nInstagram: restless_redhead\nWebsite: www.trailtestedmfg.com\n\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nSong List:\nYou Blow My Mind - Hallman\nWhite Gold - Tommy Ljundberg\nYour Vibe - Yomoti\nUp Higher - Sven Karlsson\nCalling Me - Ooyy", "TIMELAPSE- Couple Builds DIY RV (Start To Finish)", "58ffd575-1419-4edf-a9a0-7df4679db206", 10, [], 687, false, "7mQygf8-LUU", "https://www.youtube.com/watch?v=7mQygf8-LUU", 19, "/downloads/Vanlife/2021-02-27 TIMELAPSE- Couple Builds DIY RV (Start To Finish)/TIMELAPSE- Couple Builds DIY RV (Start To Finish) [7mQygf8-LUU].mp4", false, false, false, 1, ~U[2021-02-27 13:00:02Z], ~U[2026-07-11 14:55:10Z], ~U[2026-07-11 14:55:10Z], "We spent 2.5 months building the DIY off-road RV of our dreams! From a pile of aluminum to a turnkey camper, see just how much work went into building this epic adventure machine.\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► WATCH - Complete Camper Build Series: https://bit.ly/3k6qQWv\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nSupport our channel by subscribing and dropping a comment below! We are already cooking up the next big project and can't wait to share it with you all.\n\nInstagram: restless_redhead\nWebsite: www.trailtestedmfg.com\n\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nSong List:\nYou Blow My Mind - Hallman\nWhite Gold - Tommy Ljundberg\nYour Vibe - Yomoti\nUp Higher - Sven Karlsson\nCalling Me - Ooyy", "TIMELAPSE- Couple Builds DIY RV (Start To Finish)", 10, 687, false, "7mQygf8-LUU", "https://www.youtube.com/watch?v=7mQygf8-LUU", "/downloads/Vanlife/2021-02-27 TIMELAPSE- Couple Builds DIY RV (Start To Finish)/TIMELAPSE- Couple Builds DIY RV (Start To Finish) [7mQygf8-LUU].mp4", false, ~U[2021-02-27 13:00:02Z]] 10:55:10.548 [debug] QUERY OK source="sources" db=0.2ms idle=73.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:10.548 [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:55:10.549 [debug] QUERY OK source="media_items" db=0.3ms queue=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 [10117] 10:55:10.549 [debug] Current batch of media processed. Will check again in 1000ms 10:55:11.550 [debug] Current batch of media processed. Will check again in 1000ms 10:55:12.551 [debug] Current batch of media processed. Will check again in 1000ms 10:55:13.552 [debug] Current batch of media processed. Will check again in 1000ms 10:55:14.553 [debug] Current batch of media processed. Will check again in 1000ms 10:55:15.554 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "When rebuilding a car or motorcycle, or wiring a race car, it is often easier to rip out the old wiring and redo all of it. Today I will show you how to plan it out and do it with the correct connectors, wires, and tools. It's easier than it sounds and cheaper than you might think.\n\nThe Labelmaker and heat shrink I use:\nhttps://amzn.to/3j5xfSP\nhttps://amzn.to/35KhJUs\nhttps://amzn.to/2STdh34\nI may get a commission if you use the above links\n\nAll the part numbers and links you need: \nhttps://docs.google.com/spreadsheets/d/1YXXTvyCiPEYuy4OMygnMDq84ny5QzHOqsxAcB5Mt0i0/\n\nVideo on ECU wiring (specifically the Megasquirt): https://youtu.be/6LTwtQDOoRA\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt", "duration" => 1149, "filename" => "/downloads/Vanlife/2021-01-19 Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively/Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively [pSXv8RHa22I].mkv", "id" => "pSXv8RHa22I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pSXv8RHa22I", "playlist_index" => 20, "timestamp" => 1611061213, "title" => "Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively", "upload_date" => "20210119"} 10:55:15.554 [debug] QUERY OK source="sources" db=0.1ms idle=74.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:55:15.555 [debug] QUERY OK source="sources" db=0.1ms idle=0.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:15.555 [debug] QUERY OK source="media_items" db=0.3ms idle=0.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-01-19 13:00:13Z], 10] 10:55:15.556 [debug] QUERY OK source="media_items" db=0.6ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["When rebuilding a car or motorcycle, or wiring a race car, it is often easier to rip out the old wiring and redo all of it. Today I will show you how to plan it out and do it with the correct connectors, wires, and tools. It's easier than it sounds and cheaper than you might think.\n\nThe Labelmaker and heat shrink I use:\nhttps://amzn.to/3j5xfSP\nhttps://amzn.to/35KhJUs\nhttps://amzn.to/2STdh34\nI may get a commission if you use the above links\n\nAll the part numbers and links you need: \nhttps://docs.google.com/spreadsheets/d/1YXXTvyCiPEYuy4OMygnMDq84ny5QzHOqsxAcB5Mt0i0/\n\nVideo on ECU wiring (specifically the Megasquirt): https://youtu.be/6LTwtQDOoRA\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt", "Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively", "6bf919ab-9337-4443-8f12-ad418068c36a", 10, [], 1149, false, "pSXv8RHa22I", "https://www.youtube.com/watch?v=pSXv8RHa22I", 20, "/downloads/Vanlife/2021-01-19 Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively/Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively [pSXv8RHa22I].mkv", false, false, false, 1, ~U[2021-01-19 13:00:13Z], ~U[2026-07-11 14:55:15Z], ~U[2026-07-11 14:55:15Z], "When rebuilding a car or motorcycle, or wiring a race car, it is often easier to rip out the old wiring and redo all of it. Today I will show you how to plan it out and do it with the correct connectors, wires, and tools. It's easier than it sounds and cheaper than you might think.\n\nThe Labelmaker and heat shrink I use:\nhttps://amzn.to/3j5xfSP\nhttps://amzn.to/35KhJUs\nhttps://amzn.to/2STdh34\nI may get a commission if you use the above links\n\nAll the part numbers and links you need: \nhttps://docs.google.com/spreadsheets/d/1YXXTvyCiPEYuy4OMygnMDq84ny5QzHOqsxAcB5Mt0i0/\n\nVideo on ECU wiring (specifically the Megasquirt): https://youtu.be/6LTwtQDOoRA\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt", "Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively", 10, 1149, false, "pSXv8RHa22I", "https://www.youtube.com/watch?v=pSXv8RHa22I", "/downloads/Vanlife/2021-01-19 Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively/Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively [pSXv8RHa22I].mkv", false, ~U[2021-01-19 13:00:13Z]] 10:55:15.557 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:15.557 [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] 10:55:15.557 [debug] QUERY OK source="media_items" db=0.1ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10119] 10:55:15.557 [debug] Current batch of media processed. Will check again in 1000ms 10:55:16.558 [debug] Current batch of media processed. Will check again in 1000ms 10:55:17.559 [debug] Current batch of media processed. Will check again in 1000ms 10:55:18.560 [debug] Current batch of media processed. Will check again in 1000ms 10:55:19.561 [debug] Current batch of media processed. Will check again in 1000ms 10:55:20.562 [debug] Current batch of media processed. Will check again in 1000ms 10:55:21.563 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Superfast Matt is supported by:\nSendCutSend - For Fast laser cut parts, click here: https://bit.ly/34eGomq\n\nAnd no, I'm not putting Tesla door handles on the Jag.\n\nThis channel has awesome info on Tesla's advanced technology: https://www.youtube.com/watch?v=PnUnBiNfa-A\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "duration" => 656, "filename" => "/downloads/Vanlife/2021-09-02 Tesla Is Lightyears Ahead Of... Tesla/Tesla Is Lightyears Ahead Of... Tesla [Bea4FS-zDzc].mkv", "id" => "Bea4FS-zDzc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Bea4FS-zDzc", "playlist_index" => 21, "timestamp" => 1630596601, "title" => "Tesla Is Lightyears Ahead Of... Tesla", "upload_date" => "20210902"} 10:55:21.563 [debug] QUERY OK source="sources" db=0.1ms idle=75.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:55:21.564 [debug] QUERY OK source="sources" db=0.1ms idle=9.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:21.564 [debug] QUERY OK source="media_items" db=0.4ms idle=9.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-09-02 15:30:01Z], 10] 10:55:21.565 [debug] QUERY OK source="media_items" db=0.6ms idle=10.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Superfast Matt is supported by:\nSendCutSend - For Fast laser cut parts, click here: https://bit.ly/34eGomq\n\nAnd no, I'm not putting Tesla door handles on the Jag.\n\nThis channel has awesome info on Tesla's advanced technology: https://www.youtube.com/watch?v=PnUnBiNfa-A\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "Tesla Is Lightyears Ahead Of... Tesla", "1b89030b-1d45-4542-887f-58ae9e122abc", 10, [], 656, false, "Bea4FS-zDzc", "https://www.youtube.com/watch?v=Bea4FS-zDzc", 21, "/downloads/Vanlife/2021-09-02 Tesla Is Lightyears Ahead Of... Tesla/Tesla Is Lightyears Ahead Of... Tesla [Bea4FS-zDzc].mkv", false, false, false, 1, ~U[2021-09-02 15:30:01Z], ~U[2026-07-11 14:55:21Z], ~U[2026-07-11 14:55:21Z], "Superfast Matt is supported by:\nSendCutSend - For Fast laser cut parts, click here: https://bit.ly/34eGomq\n\nAnd no, I'm not putting Tesla door handles on the Jag.\n\nThis channel has awesome info on Tesla's advanced technology: https://www.youtube.com/watch?v=PnUnBiNfa-A\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "Tesla Is Lightyears Ahead Of... Tesla", 10, 656, false, "Bea4FS-zDzc", "https://www.youtube.com/watch?v=Bea4FS-zDzc", "/downloads/Vanlife/2021-09-02 Tesla Is Lightyears Ahead Of... Tesla/Tesla Is Lightyears Ahead Of... Tesla [Bea4FS-zDzc].mkv", false, ~U[2021-09-02 15:30:01Z]] 10:55:21.566 [debug] QUERY OK source="sources" db=0.1ms idle=11.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:21.566 [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] 10:55:21.566 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10121] 10:55:21.566 [debug] Current batch of media processed. Will check again in 1000ms 10:55:22.567 [debug] Current batch of media processed. Will check again in 1000ms 10:55:23.568 [debug] Current batch of media processed. Will check again in 1000ms 10:55:24.569 [debug] Current batch of media processed. Will check again in 1000ms 10:55:25.570 [debug] Current batch of media processed. Will check again in 1000ms 10:55:26.571 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I hate sleeping in a tent, but I have a camping trip coming up this weekend and it’s already Thursday. So, I spent an hour and $40 to make the cheapest, easiest car camper conversion. \nYes, it’s basically just an elevated platform, but with some backpacks and the right mattress, it has everything you need. It’s the ultra-light version of #vanlife\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt\nTwitter - https://twitter.com/Superfast\n\n#carcamping", "duration" => 380, "filename" => "/downloads/Vanlife/2020-03-10 The Easiest, Cheapest Car Camper Conversion/The Easiest, Cheapest Car Camper Conversion [oJfdDV32XX0].mkv", "id" => "oJfdDV32XX0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oJfdDV32XX0", "playlist_index" => 22, "timestamp" => 1583841610, "title" => "The Easiest, Cheapest Car Camper Conversion", "upload_date" => "20200310"} 10:55:26.572 [debug] QUERY OK source="sources" db=0.1ms idle=1017.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:55:26.572 [debug] QUERY OK source="sources" db=0.1ms idle=1017.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:26.573 [debug] QUERY OK source="media_items" db=0.4ms idle=1018.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-03-10 12:00:10Z], 10] 10:55:26.575 [debug] QUERY OK source="media_items" db=2.5ms idle=1018.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I hate sleeping in a tent, but I have a camping trip coming up this weekend and it’s already Thursday. So, I spent an hour and $40 to make the cheapest, easiest car camper conversion. \nYes, it’s basically just an elevated platform, but with some backpacks and the right mattress, it has everything you need. It’s the ultra-light version of #vanlife\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt\nTwitter - https://twitter.com/Superfast\n\n#carcamping", "The Easiest, Cheapest Car Camper Conversion", "7360dcdc-1081-4862-9e81-946409fb3338", 10, [], 380, false, "oJfdDV32XX0", "https://www.youtube.com/watch?v=oJfdDV32XX0", 22, "/downloads/Vanlife/2020-03-10 The Easiest, Cheapest Car Camper Conversion/The Easiest, Cheapest Car Camper Conversion [oJfdDV32XX0].mkv", false, false, false, 1, ~U[2020-03-10 12:00:10Z], ~U[2026-07-11 14:55:26Z], ~U[2026-07-11 14:55:26Z], "I hate sleeping in a tent, but I have a camping trip coming up this weekend and it’s already Thursday. So, I spent an hour and $40 to make the cheapest, easiest car camper conversion. \nYes, it’s basically just an elevated platform, but with some backpacks and the right mattress, it has everything you need. It’s the ultra-light version of #vanlife\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt\nTwitter - https://twitter.com/Superfast\n\n#carcamping", "The Easiest, Cheapest Car Camper Conversion", 10, 380, false, "oJfdDV32XX0", "https://www.youtube.com/watch?v=oJfdDV32XX0", "/downloads/Vanlife/2020-03-10 The Easiest, Cheapest Car Camper Conversion/The Easiest, Cheapest Car Camper Conversion [oJfdDV32XX0].mkv", false, ~U[2020-03-10 12:00:10Z]] 10:55:26.576 [debug] QUERY OK source="sources" db=0.1ms idle=82.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:26.576 [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] 10:55:26.576 [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 [10123] 10:55:26.576 [debug] Current batch of media processed. Will check again in 1000ms 10:55:27.577 [debug] Current batch of media processed. Will check again in 1000ms 10:55:28.578 [debug] Current batch of media processed. Will check again in 1000ms 10:55:29.579 [debug] Current batch of media processed. Will check again in 1000ms 10:55:30.467 [info] {"source":"oban","duration":642,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:55:30.580 [debug] Current batch of media processed. Will check again in 1000ms 10:55:31.581 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "What an amazing vehicle Erik has created out of this F-550, and the best part, this is just the beginning! The next two videos will be full explanations of the interior, and the rooftop deck. Where would you take this insane expedition rig? Whatever the answer, you could buy it and go! \n\nShoot Erik an email to inquire about purchasing this vehicle!\nerikpetroni@outlook.com\n\nIf my videos and content have inspired you or bring joy to your life, consider helping to support my videos on Patreon: https://www.patreon.com/down2mob\n\nProduct Discounts: https://www.down2mob.com/discount-codes\n\nAmazon Store: https://www.amazon.com/shop/down2moboverland\n\nMERCH IS HERE!\nhttps://www.teespring.com/stores/down2mob", "duration" => 573, "filename" => "/downloads/Vanlife/2023-06-03 Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio/Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio [k_83NPR1k1Q].mp4", "id" => "k_83NPR1k1Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=k_83NPR1k1Q", "playlist_index" => 23, "timestamp" => 1685800827, "title" => "Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio", "upload_date" => "20230603"} 10:55:31.582 [debug] QUERY OK source="sources" db=0.1ms idle=1027.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:55:31.582 [debug] QUERY OK source="sources" db=0.1ms idle=1027.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:31.582 [debug] QUERY OK source="media_items" db=0.3ms idle=1027.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-03 14:00:27Z], 10] 10:55:31.585 [debug] QUERY OK source="media_items" db=2.7ms idle=83.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What an amazing vehicle Erik has created out of this F-550, and the best part, this is just the beginning! The next two videos will be full explanations of the interior, and the rooftop deck. Where would you take this insane expedition rig? Whatever the answer, you could buy it and go! \n\nShoot Erik an email to inquire about purchasing this vehicle!\nerikpetroni@outlook.com\n\nIf my videos and content have inspired you or bring joy to your life, consider helping to support my videos on Patreon: https://www.patreon.com/down2mob\n\nProduct Discounts: https://www.down2mob.com/discount-codes\n\nAmazon Store: https://www.amazon.com/shop/down2moboverland\n\nMERCH IS HERE!\nhttps://www.teespring.com/stores/down2mob", "Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio", "2c7a6c10-83a0-44bf-98ef-cd098f48f89c", 10, [], 573, false, "k_83NPR1k1Q", "https://www.youtube.com/watch?v=k_83NPR1k1Q", 23, "/downloads/Vanlife/2023-06-03 Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio/Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio [k_83NPR1k1Q].mp4", false, false, false, 1, ~U[2023-06-03 14:00:27Z], ~U[2026-07-11 14:55:31Z], ~U[2026-07-11 14:55:31Z], "What an amazing vehicle Erik has created out of this F-550, and the best part, this is just the beginning! The next two videos will be full explanations of the interior, and the rooftop deck. Where would you take this insane expedition rig? Whatever the answer, you could buy it and go! \n\nShoot Erik an email to inquire about purchasing this vehicle!\nerikpetroni@outlook.com\n\nIf my videos and content have inspired you or bring joy to your life, consider helping to support my videos on Patreon: https://www.patreon.com/down2mob\n\nProduct Discounts: https://www.down2mob.com/discount-codes\n\nAmazon Store: https://www.amazon.com/shop/down2moboverland\n\nMERCH IS HERE!\nhttps://www.teespring.com/stores/down2mob", "Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio", 10, 573, false, "k_83NPR1k1Q", "https://www.youtube.com/watch?v=k_83NPR1k1Q", "/downloads/Vanlife/2023-06-03 Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio/Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio [k_83NPR1k1Q].mp4", false, ~U[2023-06-03 14:00:27Z]] 10:55:31.586 [debug] QUERY OK source="sources" db=0.1ms idle=31.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:31.586 [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:55:31.586 [debug] QUERY OK source="media_items" db=0.1ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10125] 10:55:31.586 [debug] Current batch of media processed. Will check again in 1000ms 10:55:32.587 [debug] Current batch of media processed. Will check again in 1000ms 10:55:33.588 [debug] Current batch of media processed. Will check again in 1000ms 10:55:34.589 [debug] Current batch of media processed. Will check again in 1000ms 10:55:35.590 [debug] Current batch of media processed. Will check again in 1000ms 10:55:36.591 [debug] Current batch of media processed. Will check again in 1000ms 10:55:37.593 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Camping adventure in the heart of Florida! 🚙🌲 In this unique experience, I explore the great outdoors in a fully-equipped military Humvee. From rugged trails to serene campsites, the Humvee provides the perfect blend of comfort off grid.\n\n✅ Stay Connected With Me: \n\n👉 Instagram: https://www.instagram.com/ROAMINGVENTURES/\n👉 TikTok : https://www.tiktok.com/@roamingventures\n \n==============================\n\n✅ Other Videos You Might Be Interested In Watching: \n\n👉 Humvee Tour: https://youtu.be/xlxCad5TeLY\n\n👉 Humvee Timelapse: https://youtu.be/Z0Mqxe5kIH0\n\n👉 Humvee Conversion: Makeover with Raptor Liner | Roaming Venture\nhttps://www.youtube.com/watch?v=cyQjv0cbols\n\n👉 Transforming My Humvee into a Dream Camper | Roaming Venture\nhttps://www.youtube.com/watch?v=2B1hu0rfD7o\n\n=============================\n\n✅ About Roaming Venture: \n\nAt Roaming Ventures, we combine our passion for building Humvee camper conversions with a deep appreciation for the great outdoors. My channel is a haven for DIY enthusiasts and adventurers. From layout and design to electrical systems and interior finishes, we share our knowledge and experiences to help you achieve your dream adventure vehicle.\n\nOur travel vlogs and adventure stories will inspire you to embrace the freedom and serenity of nature, and to create unforgettable memories along the way.\n\nRoaming Ventures - Where craftsmanship meets adventure, and the open road becomes your canvas\n\nFor Collaboration and Business inquiries, please use the contact information below:\n\n📩 Email: info@roaming.ventures\n\n🔔 Subscribe to my channel for more videos: https://www.youtube.com/@roamingventures/?sub_confirmation=1\n\n=====================\n\n#campervans #humvee #humveecamper", "duration" => 837, "filename" => "/downloads/Vanlife/2024-06-25 Off-road Camping | DIY Military Humvee/Off-road Camping | DIY Military Humvee [wrUwvA0wknQ].mkv", "id" => "wrUwvA0wknQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wrUwvA0wknQ", "playlist_index" => 24, "timestamp" => 1719325820, "title" => "Off-road Camping | DIY Military Humvee", "upload_date" => "20240625"} 10:55:37.593 [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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:55:37.594 [debug] QUERY OK source="sources" db=0.1ms idle=39.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:37.594 [debug] QUERY OK source="media_items" db=0.4ms idle=39.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-25 14:30:20Z], 10] 10:55:37.595 [debug] QUERY OK source="media_items" db=0.8ms idle=40.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Camping adventure in the heart of Florida! 🚙🌲 In this unique experience, I explore the great outdoors in a fully-equipped military Humvee. From rugged trails to serene campsites, the Humvee provides the perfect blend of comfort off grid.\n\n✅ Stay Connected With Me: \n\n👉 Instagram: https://www.instagram.com/ROAMINGVENTURES/\n👉 TikTok : https://www.tiktok.com/@roamingventures\n \n==============================\n\n✅ Other Videos You Might Be Interested In Watching: \n\n👉 Humvee Tour: https://youtu.be/xlxCad5TeLY\n\n👉 Humvee Timelapse: https://youtu.be/Z0Mqxe5kIH0\n\n👉 Humvee Conversion: Makeover with Raptor Liner | Roaming Venture\nhttps://www.youtube.com/watch?v=cyQjv0cbols\n\n👉 Transforming My Humvee into a Dream Camper | Roaming Venture\nhttps://www.youtube.com/watch?v=2B1hu0rfD7o\n\n=============================\n\n✅ About Roaming Venture: \n\nAt Roaming Ventures, we combine our passion for building Humvee camper conversions with a deep appreciation for the great outdoors. My channel is a haven for DIY enthusiasts and adventurers. From layout and design to electrical systems and interior finishes, we share our knowledge and experiences to help you achieve your dream adventure vehicle.\n\nOur travel vlogs and adventure stories will inspire you to embrace the freedom and serenity of nature, and to create unforgettable memories along the way.\n\nRoaming Ventures - Where craftsmanship meets adventure, and the open road becomes your canvas\n\nFor Collaboration and Business inquiries, please use the contact information below:\n\n📩 Email: info@roaming.ventures\n\n🔔 Subscribe to my channel for more videos: https://www.youtube.com/@roamingventures/?sub_confirmation=1\n\n=====================\n\n#campervans #humvee #humveecamper", "Off-road Camping | DIY Military Humvee", "8211a837-b62e-4b19-9d9d-fb5ef3b3d2e9", 10, [], 837, false, "wrUwvA0wknQ", "https://www.youtube.com/watch?v=wrUwvA0wknQ", 24, "/downloads/Vanlife/2024-06-25 Off-road Camping | DIY Military Humvee/Off-road Camping | DIY Military Humvee [wrUwvA0wknQ].mkv", false, false, false, 1, ~U[2024-06-25 14:30:20Z], ~U[2026-07-11 14:55:37Z], ~U[2026-07-11 14:55:37Z], "Camping adventure in the heart of Florida! 🚙🌲 In this unique experience, I explore the great outdoors in a fully-equipped military Humvee. From rugged trails to serene campsites, the Humvee provides the perfect blend of comfort off grid.\n\n✅ Stay Connected With Me: \n\n👉 Instagram: https://www.instagram.com/ROAMINGVENTURES/\n👉 TikTok : https://www.tiktok.com/@roamingventures\n \n==============================\n\n✅ Other Videos You Might Be Interested In Watching: \n\n👉 Humvee Tour: https://youtu.be/xlxCad5TeLY\n\n👉 Humvee Timelapse: https://youtu.be/Z0Mqxe5kIH0\n\n👉 Humvee Conversion: Makeover with Raptor Liner | Roaming Venture\nhttps://www.youtube.com/watch?v=cyQjv0cbols\n\n👉 Transforming My Humvee into a Dream Camper | Roaming Venture\nhttps://www.youtube.com/watch?v=2B1hu0rfD7o\n\n=============================\n\n✅ About Roaming Venture: \n\nAt Roaming Ventures, we combine our passion for building Humvee camper conversions with a deep appreciation for the great outdoors. My channel is a haven for DIY enthusiasts and adventurers. From layout and design to electrical systems and interior finishes, we share our knowledge and experiences to help you achieve your dream adventure vehicle.\n\nOur travel vlogs and adventure stories will inspire you to embrace the freedom and serenity of nature, and to create unforgettable memories along the way.\n\nRoaming Ventures - Where craftsmanship meets adventure, and the open road becomes your canvas\n\nFor Collaboration and Business inquiries, please use the contact information below:\n\n📩 Email: info@roaming.ventures\n\n🔔 Subscribe to my channel for more videos: https://www.youtube.com/@roamingventures/?sub_confirmation=1\n\n=====================\n\n#campervans #humvee #humveecamper", "Off-road Camping | DIY Military Humvee", 10, 837, false, "wrUwvA0wknQ", "https://www.youtube.com/watch?v=wrUwvA0wknQ", "/downloads/Vanlife/2024-06-25 Off-road Camping | DIY Military Humvee/Off-road Camping | DIY Military Humvee [wrUwvA0wknQ].mkv", false, ~U[2024-06-25 14:30:20Z]] 10:55:37.596 [debug] QUERY OK source="sources" db=0.1ms idle=41.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:37.596 [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] 10:55:37.596 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10127] 10:55:37.596 [debug] Current batch of media processed. Will check again in 1000ms 10:55:38.597 [debug] Current batch of media processed. Will check again in 1000ms 10:55:39.598 [debug] Current batch of media processed. Will check again in 1000ms 10:55:40.599 [debug] Current batch of media processed. Will check again in 1000ms 10:55:41.600 [debug] Current batch of media processed. Will check again in 1000ms 10:55:42.601 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "This video dives into the details of what it REALLY took to build The MUSEROAMER, our DIY expedition vehicle. From the costs and expenses, to the resources it requires, to the mindset along the way, to how we worked with brands to elevate the entire build.\n\nI was inspired by the EarthRoamer expedition vehicle build and decided I would try to build my own with a $30,000 budget and a 2 month timeframe. I quickly learned both goals were unrealistic, especially when I decided to take the project to the absolute highest level we could.\n\nIntro: :25\nInspiration and History: 1:00\nPulling the Trigger: 1:30\nBase Vehicle: 2:00\nBudget: 2:30\nResources: 3:00\nDesign Evolution: 4:10\nWorking with Brands: 5:15\nWhere We Could Have Saved: \nChange of Mindset: 7:00\nWhat it REALLY Cost: 7:50\nFor Sale: 8:45\nFinal Thoughts: 9:30\nBuild Sheet Preview: 11:50\n \nWe documented the entire build, not only on video, but on paper as well. We took everything we learned and complied all the information onto The MUSEROAMER Project Build Sheet, which is available now. The Build Sheet contains a detailed list of materials, appliances, expenses, and components with links to where we found them. It also contains renderings and drawings to scale with detailed measurements. I've also included what I would do differently next time as well as ideas on how to save you time and money. I have no doubt that this will save people hundreds of hours of searching the web and decision making and money/materials if you decide to build an expedition vehicle of your own!\n\nMUSEROAMER Build: https://www.youtube.com/playlist?list=PLAt9VMg1-bq0z8a4qMZY5WWiOqjfLqS4L\n\nIf you find the content we create at all meaningful, educational, entertaining, inspiring, or valuable please consider joining our team on Patreon! We'll be releasing exclusive content, limited edition swag, and more. https://www.patreon.com/AndrewMuse\n\nThe Build Sheet: https://www.andrewmuseproductions.com/product-page/the-museroamer-project-build-sheet\n\nSpecial thanks to:\nJosh Heiner\nAshley LaMarre\nGraham Anthony\nGeorge Raggets\nTrevor Kingsbury\nMark LeBlanc\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFor more day to day adventures follow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse", "duration" => 832, "filename" => "/downloads/Vanlife/2020-04-12 What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE)/What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE) [rnkzmGhsLfo].mp4", "id" => "rnkzmGhsLfo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rnkzmGhsLfo", "playlist_index" => 25, "timestamp" => 1586703611, "title" => "What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE)", "upload_date" => "20200412"} 10:55:42.602 [debug] QUERY OK source="sources" db=0.1ms idle=1047.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:55:42.602 [debug] QUERY OK source="sources" db=0.1ms idle=1047.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:42.602 [debug] QUERY OK source="media_items" db=0.4ms idle=1047.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-04-12 15:00:11Z], 10] 10:55:42.604 [debug] QUERY OK source="media_items" db=1.1ms idle=1048.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This video dives into the details of what it REALLY took to build The MUSEROAMER, our DIY expedition vehicle. From the costs and expenses, to the resources it requires, to the mindset along the way, to how we worked with brands to elevate the entire build.\n\nI was inspired by the EarthRoamer expedition vehicle build and decided I would try to build my own with a $30,000 budget and a 2 month timeframe. I quickly learned both goals were unrealistic, especially when I decided to take the project to the absolute highest level we could.\n\nIntro: :25\nInspiration and History: 1:00\nPulling the Trigger: 1:30\nBase Vehicle: 2:00\nBudget: 2:30\nResources: 3:00\nDesign Evolution: 4:10\nWorking with Brands: 5:15\nWhere We Could Have Saved: \nChange of Mindset: 7:00\nWhat it REALLY Cost: 7:50\nFor Sale: 8:45\nFinal Thoughts: 9:30\nBuild Sheet Preview: 11:50\n \nWe documented the entire build, not only on video, but on paper as well. We took everything we learned and complied all the information onto The MUSEROAMER Project Build Sheet, which is available now. The Build Sheet contains a detailed list of materials, appliances, expenses, and components with links to where we found them. It also contains renderings and drawings to scale with detailed measurements. I've also included what I would do differently next time as well as ideas on how to save you time and money. I have no doubt that this will save people hundreds of hours of searching the web and decision making and money/materials if you decide to build an expedition vehicle of your own!\n\nMUSEROAMER Build: https://www.youtube.com/playlist?list=PLAt9VMg1-bq0z8a4qMZY5WWiOqjfLqS4L\n\nIf you find the content we create at all meaningful, educational, entertaining, inspiring, or valuable please consider joining our team on Patreon! We'll be releasing exclusive content, limited edition swag, and more. https://www.patreon.com/AndrewMuse\n\nThe Build Sheet: https://www.andrewmuseproductions.com/product-page/the-museroamer-project-build-sheet\n\nSpecial thanks to:\nJosh Heiner\nAshley LaMarre\nGraham Anthony\nGeorge Raggets\nTrevor Kingsbury\nMark LeBlanc\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFor more day to day adventures follow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse", "What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE)", "73877053-e1b1-4dae-a907-b2ad8701ceb6", 10, [], 832, false, "rnkzmGhsLfo", "https://www.youtube.com/watch?v=rnkzmGhsLfo", 25, "/downloads/Vanlife/2020-04-12 What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE)/What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE) [rnkzmGhsLfo].mp4", false, false, false, 1, ~U[2020-04-12 15:00:11Z], ~U[2026-07-11 14:55:42Z], ~U[2026-07-11 14:55:42Z], "This video dives into the details of what it REALLY took to build The MUSEROAMER, our DIY expedition vehicle. From the costs and expenses, to the resources it requires, to the mindset along the way, to how we worked with brands to elevate the entire build.\n\nI was inspired by the EarthRoamer expedition vehicle build and decided I would try to build my own with a $30,000 budget and a 2 month timeframe. I quickly learned both goals were unrealistic, especially when I decided to take the project to the absolute highest level we could.\n\nIntro: :25\nInspiration and History: 1:00\nPulling the Trigger: 1:30\nBase Vehicle: 2:00\nBudget: 2:30\nResources: 3:00\nDesign Evolution: 4:10\nWorking with Brands: 5:15\nWhere We Could Have Saved: \nChange of Mindset: 7:00\nWhat it REALLY Cost: 7:50\nFor Sale: 8:45\nFinal Thoughts: 9:30\nBuild Sheet Preview: 11:50\n \nWe documented the entire build, not only on video, but on paper as well. We took everything we learned and complied all the information onto The MUSEROAMER Project Build Sheet, which is available now. The Build Sheet contains a detailed list of materials, appliances, expenses, and components with links to where we found them. It also contains renderings and drawings to scale with detailed measurements. I've also included what I would do differently next time as well as ideas on how to save you time and money. I have no doubt that this will save people hundreds of hours of searching the web and decision making and money/materials if you decide to build an expedition vehicle of your own!\n\nMUSEROAMER Build: https://www.youtube.com/playlist?list=PLAt9VMg1-bq0z8a4qMZY5WWiOqjfLqS4L\n\nIf you find the content we create at all meaningful, educational, entertaining, inspiring, or valuable please consider joining our team on Patreon! We'll be releasing exclusive content, limited edition swag, and more. https://www.patreon.com/AndrewMuse\n\nThe Build Sheet: https://www.andrewmuseproductions.com/product-page/the-museroamer-project-build-sheet\n\nSpecial thanks to:\nJosh Heiner\nAshley LaMarre\nGraham Anthony\nGeorge Raggets\nTrevor Kingsbury\nMark LeBlanc\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFor more day to day adventures follow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse", "What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE)", 10, 832, false, "rnkzmGhsLfo", "https://www.youtube.com/watch?v=rnkzmGhsLfo", "/downloads/Vanlife/2020-04-12 What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE)/What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE) [rnkzmGhsLfo].mp4", false, ~U[2020-04-12 15:00:11Z]] 10:55:42.604 [debug] QUERY OK source="sources" db=0.2ms idle=93.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:42.605 [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:55:42.605 [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 [10128] 10:55:42.605 [debug] Current batch of media processed. Will check again in 1000ms 10:55:43.606 [debug] Current batch of media processed. Will check again in 1000ms 10:55:44.607 [debug] Current batch of media processed. Will check again in 1000ms 10:55:45.608 [debug] Current batch of media processed. Will check again in 1000ms 10:55:46.609 [debug] Current batch of media processed. Will check again in 1000ms 10:55:47.610 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Come along for a full EarthRoamer LTX Tour—one of the best expedition vehicles 2025 has to offer. Whether you're dreaming of life off the grid, planning your next overland adventure, or just love rugged luxury, this tour is for you.\n\nIn this video, we take you through the exterior and interior of the EarthRoamer LTX:\n🌍 Built on a powerful Ford F-550 4x4 chassis for ultimate off-road capability\n🔋 Equipped with massive solar power and lithium battery systems for true off-grid living\n🚿 Outdoor shower, oversized tires, and roof-mounted gear storage for all your backcountry needs\n🛋️ Inside, enjoy a high-end interior with premium finishes, a full kitchen, wet bath, and smart storage solutions\n🛏️ Comfortable sleeping space, dinette area, and climate control make this a luxury apartment on wheels\nThis is not your average RV—this is a home built for the wild. From desert boondocking to alpine trails, see why the EarthRoamer LTX continues to top the list of the best expedition vehicles 2025.\n\n💬 Drop your favorite feature in the comments! Would you live full-time in an EarthRoamer?\n✅ Like & Subscribe for more overland builds, vehicle tours, and life on the road content.\n\n#earthroamer #EarthRoamerLTX #BestExpeditionVehicles2025 \n▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\n\n🚐 Living full-time in EarthRoamer LTS #192, exploring off-grid destinations, and working remotely from the road. Join us as we chase adventure, share overland travel tips, and embrace unfiltered life on the move.\n\n🔗 Follow our journey: @WideOpenRoams\n\n#OverlandTravel #FullTimeRV #VanLife #OffGridLiving #TravelVlog #RemoteWork #RoadLife #AdventureTravel #NomadicLiving #VanlifeUpgrade #LuxuryOverland #LTXTour #OverlandRig \n\nVLOG 0002", "duration" => 1334, "filename" => "/downloads/Vanlife/2025-04-17 Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough/Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough [pMlSYiFs9UY].mkv", "id" => "pMlSYiFs9UY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pMlSYiFs9UY", "playlist_index" => 26, "timestamp" => 1744904926, "title" => "Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough", "upload_date" => "20250417"} 10:55:47.611 [debug] QUERY OK source="sources" db=0.1ms idle=1056.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:55:47.611 [debug] QUERY OK source="sources" db=0.1ms idle=1056.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:47.611 [debug] QUERY OK source="media_items" db=0.4ms idle=1056.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-17 15:48:46Z], 10] 10:55:47.616 [debug] QUERY OK source="media_items" db=3.6ms idle=1057.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Come along for a full EarthRoamer LTX Tour—one of the best expedition vehicles 2025 has to offer. Whether you're dreaming of life off the grid, planning your next overland adventure, or just love rugged luxury, this tour is for you.\n\nIn this video, we take you through the exterior and interior of the EarthRoamer LTX:\n🌍 Built on a powerful Ford F-550 4x4 chassis for ultimate off-road capability\n🔋 Equipped with massive solar power and lithium battery systems for true off-grid living\n🚿 Outdoor shower, oversized tires, and roof-mounted gear storage for all your backcountry needs\n🛋️ Inside, enjoy a high-end interior with premium finishes, a full kitchen, wet bath, and smart storage solutions\n🛏️ Comfortable sleeping space, dinette area, and climate control make this a luxury apartment on wheels\nThis is not your average RV—this is a home built for the wild. From desert boondocking to alpine trails, see why the EarthRoamer LTX continues to top the list of the best expedition vehicles 2025.\n\n💬 Drop your favorite feature in the comments! Would you live full-time in an EarthRoamer?\n✅ Like & Subscribe for more overland builds, vehicle tours, and life on the road content.\n\n#earthroamer #EarthRoamerLTX #BestExpeditionVehicles2025 \n▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\n\n🚐 Living full-time in EarthRoamer LTS #192, exploring off-grid destinations, and working remotely from the road. Join us as we chase adventure, share overland travel tips, and embrace unfiltered life on the move.\n\n🔗 Follow our journey: @WideOpenRoams\n\n#OverlandTravel #FullTimeRV #VanLife #OffGridLiving #TravelVlog #RemoteWork #RoadLife #AdventureTravel #NomadicLiving #VanlifeUpgrade #LuxuryOverland #LTXTour #OverlandRig \n\nVLOG 0002", "Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough", "f4f01dab-2cc6-4620-9e0b-f57413b7eb83", 10, [], 1334, false, "pMlSYiFs9UY", "https://www.youtube.com/watch?v=pMlSYiFs9UY", 26, "/downloads/Vanlife/2025-04-17 Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough/Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough [pMlSYiFs9UY].mkv", false, false, false, 1, ~U[2025-04-17 15:48:46Z], ~U[2026-07-11 14:55:47Z], ~U[2026-07-11 14:55:47Z], "Come along for a full EarthRoamer LTX Tour—one of the best expedition vehicles 2025 has to offer. Whether you're dreaming of life off the grid, planning your next overland adventure, or just love rugged luxury, this tour is for you.\n\nIn this video, we take you through the exterior and interior of the EarthRoamer LTX:\n🌍 Built on a powerful Ford F-550 4x4 chassis for ultimate off-road capability\n🔋 Equipped with massive solar power and lithium battery systems for true off-grid living\n🚿 Outdoor shower, oversized tires, and roof-mounted gear storage for all your backcountry needs\n🛋️ Inside, enjoy a high-end interior with premium finishes, a full kitchen, wet bath, and smart storage solutions\n🛏️ Comfortable sleeping space, dinette area, and climate control make this a luxury apartment on wheels\nThis is not your average RV—this is a home built for the wild. From desert boondocking to alpine trails, see why the EarthRoamer LTX continues to top the list of the best expedition vehicles 2025.\n\n💬 Drop your favorite feature in the comments! Would you live full-time in an EarthRoamer?\n✅ Like & Subscribe for more overland builds, vehicle tours, and life on the road content.\n\n#earthroamer #EarthRoamerLTX #BestExpeditionVehicles2025 \n▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\n\n🚐 Living full-time in EarthRoamer LTS #192, exploring off-grid destinations, and working remotely from the road. Join us as we chase adventure, share overland travel tips, and embrace unfiltered life on the move.\n\n🔗 Follow our journey: @WideOpenRoams\n\n#OverlandTravel #FullTimeRV #VanLife #OffGridLiving #TravelVlog #RemoteWork #RoadLife #AdventureTravel #NomadicLiving #VanlifeUpgrade #LuxuryOverland #LTXTour #OverlandRig \n\nVLOG 0002", "Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough", 10, 1334, false, "pMlSYiFs9UY", "https://www.youtube.com/watch?v=pMlSYiFs9UY", "/downloads/Vanlife/2025-04-17 Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough/Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough [pMlSYiFs9UY].mkv", false, ~U[2025-04-17 15:48:46Z]] 10:55:47.616 [debug] QUERY OK source="sources" db=0.1ms idle=98.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:47.616 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:55:47.617 [debug] QUERY OK source="media_items" db=0.2ms idle=5.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10130] 10:55:47.617 [debug] Current batch of media processed. Will check again in 1000ms 10:55:48.617 [debug] Current batch of media processed. Will check again in 1000ms 10:55:49.618 [debug] Current batch of media processed. Will check again in 1000ms 10:55:50.619 [debug] Current batch of media processed. Will check again in 1000ms 10:55:51.620 [debug] Current batch of media processed. Will check again in 1000ms 10:55:52.621 [debug] Current batch of media processed. Will check again in 1000ms 10:55:53.622 [debug] Current batch of media processed. Will check again in 1000ms 10:55:54.623 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Are you considering a skoolie build? Check this out - http://bit.ly/SkoolieSchool\nSubscribe For More Videos : https://www.youtube.com/user/tylerdurdeno9/\nSubscribe For Weekly Sneak Peeks : https://bit.ly/TinyHomeToursNewsletter\nSubscribe For Life On The Road Videos : http://bit.ly/OffGridSkoolieSubscribe\n\nVIDEO DESCRIPTION:\nAndrew and Ashley spent 2 years building this adventure vehicle from the ground up. They worked out of their friends garage and literally built the frame, the box, the interior... Everything. They initially hoped it would take 2 months of 16 hour days... Always give yourself more time than you think it's going to take. They have a beefy solar system with lithium batteries, tons of storage and the ability to travel on absolutely any terrain with the truck they built on top of and the additions they made. There's so much good information in this video about a small, functional layout including a bathroom, how to take care of moisture under beds and solar, so if you love adventure and life on the road, this is the video for you! \nAndrew's IG: https://www.instagram.com/andrew__muse/\nHis YouTube: https://www.youtube.com/channel/UCxrtaro4GiqPIYmIwnlpIsQ\nTheir rigs IG: https://www.instagram.com/tinyhomeadventure/\nAhsley's IG: https://www.instagram.com/theunexpectedadventuress/\nKicker the dog's IG: https://www.instagram.com/kickerdogmuse/\n\n______________________________BONUS CONTENT_____________________________________\nNature's Head Toilet With Bonuses - http://bit.ly/NaturesHeadTHT\nTiny House & Skoolie Build Gear - https://skooliecentral.com/gear/\nTiny Home Tours Facebook - https://www.facebook.com/Tinyhome.tours/\nTiny Home Tours Instagram - https://www.instagram.com/tinyhometours/\nLife On The Road Newsletter - http://eepurl.com/gAyDP5\nWant To See More Skoolie Videos? - https://skooliecentral.com/\nNeed Something On Amazon? Shop With This Link - http://amzn.to/1R7HfqE", "duration" => 753, "filename" => "/downloads/Vanlife/2020-09-18 DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget/DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget [OxLU77HB51Q].mp4", "id" => "OxLU77HB51Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OxLU77HB51Q", "playlist_index" => 27, "timestamp" => 1600452308, "title" => "DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget", "upload_date" => "20200918"} 10:55:54.624 [debug] QUERY OK source="sources" db=0.1ms idle=1069.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:55:54.624 [debug] QUERY OK source="sources" db=0.1ms idle=1069.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:54.624 [debug] QUERY OK source="media_items" db=0.4ms idle=1069.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-18 18:05:08Z], 10] 10:55:54.626 [debug] QUERY OK source="media_items" db=1.0ms idle=1070.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Are you considering a skoolie build? Check this out - http://bit.ly/SkoolieSchool\nSubscribe For More Videos : https://www.youtube.com/user/tylerdurdeno9/\nSubscribe For Weekly Sneak Peeks : https://bit.ly/TinyHomeToursNewsletter\nSubscribe For Life On The Road Videos : http://bit.ly/OffGridSkoolieSubscribe\n\nVIDEO DESCRIPTION:\nAndrew and Ashley spent 2 years building this adventure vehicle from the ground up. They worked out of their friends garage and literally built the frame, the box, the interior... Everything. They initially hoped it would take 2 months of 16 hour days... Always give yourself more time than you think it's going to take. They have a beefy solar system with lithium batteries, tons of storage and the ability to travel on absolutely any terrain with the truck they built on top of and the additions they made. There's so much good information in this video about a small, functional layout including a bathroom, how to take care of moisture under beds and solar, so if you love adventure and life on the road, this is the video for you! \nAndrew's IG: https://www.instagram.com/andrew__muse/\nHis YouTube: https://www.youtube.com/channel/UCxrtaro4GiqPIYmIwnlpIsQ\nTheir rigs IG: https://www.instagram.com/tinyhomeadventure/\nAhsley's IG: https://www.instagram.com/theunexpectedadventuress/\nKicker the dog's IG: https://www.instagram.com/kickerdogmuse/\n\n______________________________BONUS CONTENT_____________________________________\nNature's Head Toilet With Bonuses - http://bit.ly/NaturesHeadTHT\nTiny House & Skoolie Build Gear - https://skooliecentral.com/gear/\nTiny Home Tours Facebook - https://www.facebook.com/Tinyhome.tours/\nTiny Home Tours Instagram - https://www.instagram.com/tinyhometours/\nLife On The Road Newsletter - http://eepurl.com/gAyDP5\nWant To See More Skoolie Videos? - https://skooliecentral.com/\nNeed Something On Amazon? Shop With This Link - http://amzn.to/1R7HfqE", "DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget", "c0cf640a-f1dc-40ff-aad7-67e1f200a3d5", 10, [], 753, false, "OxLU77HB51Q", "https://www.youtube.com/watch?v=OxLU77HB51Q", 27, "/downloads/Vanlife/2020-09-18 DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget/DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget [OxLU77HB51Q].mp4", false, false, false, 1, ~U[2020-09-18 18:05:08Z], ~U[2026-07-11 14:55:54Z], ~U[2026-07-11 14:55:54Z], "Are you considering a skoolie build? Check this out - http://bit.ly/SkoolieSchool\nSubscribe For More Videos : https://www.youtube.com/user/tylerdurdeno9/\nSubscribe For Weekly Sneak Peeks : https://bit.ly/TinyHomeToursNewsletter\nSubscribe For Life On The Road Videos : http://bit.ly/OffGridSkoolieSubscribe\n\nVIDEO DESCRIPTION:\nAndrew and Ashley spent 2 years building this adventure vehicle from the ground up. They worked out of their friends garage and literally built the frame, the box, the interior... Everything. They initially hoped it would take 2 months of 16 hour days... Always give yourself more time than you think it's going to take. They have a beefy solar system with lithium batteries, tons of storage and the ability to travel on absolutely any terrain with the truck they built on top of and the additions they made. There's so much good information in this video about a small, functional layout including a bathroom, how to take care of moisture under beds and solar, so if you love adventure and life on the road, this is the video for you! \nAndrew's IG: https://www.instagram.com/andrew__muse/\nHis YouTube: https://www.youtube.com/channel/UCxrtaro4GiqPIYmIwnlpIsQ\nTheir rigs IG: https://www.instagram.com/tinyhomeadventure/\nAhsley's IG: https://www.instagram.com/theunexpectedadventuress/\nKicker the dog's IG: https://www.instagram.com/kickerdogmuse/\n\n______________________________BONUS CONTENT_____________________________________\nNature's Head Toilet With Bonuses - http://bit.ly/NaturesHeadTHT\nTiny House & Skoolie Build Gear - https://skooliecentral.com/gear/\nTiny Home Tours Facebook - https://www.facebook.com/Tinyhome.tours/\nTiny Home Tours Instagram - https://www.instagram.com/tinyhometours/\nLife On The Road Newsletter - http://eepurl.com/gAyDP5\nWant To See More Skoolie Videos? - https://skooliecentral.com/\nNeed Something On Amazon? Shop With This Link - http://amzn.to/1R7HfqE", "DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget", 10, 753, false, "OxLU77HB51Q", "https://www.youtube.com/watch?v=OxLU77HB51Q", "/downloads/Vanlife/2020-09-18 DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget/DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget [OxLU77HB51Q].mp4", false, ~U[2020-09-18 18:05:08Z]] 10:55:54.626 [debug] QUERY OK source="sources" db=0.1ms idle=101.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:54.626 [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] 10:55:54.627 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10132] 10:55:54.627 [debug] Current batch of media processed. Will check again in 1000ms 10:55:55.627 [debug] Current batch of media processed. Will check again in 1000ms 10:55:56.628 [debug] Current batch of media processed. Will check again in 1000ms 10:55:57.629 [debug] Current batch of media processed. Will check again in 1000ms 10:55:58.630 [debug] Current batch of media processed. Will check again in 1000ms 10:55:59.631 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Our latest GRID Series Truck camper built on a 2023 Ford F550. This unit has the G2 Floor Plan and is set up to seat 6 and sleep 6 individuals. Full build specs and gallery of photos can be found here:\nhttps://www.wildernessvans.com/2023-f-550-crew-cab-3032-grid/\n\nTo build your dream camper, utilize our Build and Price tool here:\nhttps://build.wildernessvans.com/build/platform?utm_source=YouTube&utm_medium=social+media&utm_campaign=July2025+F550+Grid+series+camper+G2+floor+plan", "duration" => 552, "filename" => "/downloads/Vanlife/2023-08-15 Ford F550 GRID Series Truck Camper with G2 Floor Plan/Ford F550 GRID Series Truck Camper with G2 Floor Plan [6pby0s0GG1g].mkv", "id" => "6pby0s0GG1g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6pby0s0GG1g", "playlist_index" => 28, "timestamp" => 1692119869, "title" => "Ford F550 GRID Series Truck Camper with G2 Floor Plan", "upload_date" => "20230815"} 10:55:59.632 [debug] QUERY OK source="sources" db=0.1ms idle=1077.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:55:59.632 [debug] QUERY OK source="sources" db=0.1ms idle=1077.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:59.632 [debug] QUERY OK source="media_items" db=0.4ms idle=1077.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-15 17:17:49Z], 10] 10:55:59.633 [debug] QUERY OK source="media_items" db=0.6ms idle=1078.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Our latest GRID Series Truck camper built on a 2023 Ford F550. This unit has the G2 Floor Plan and is set up to seat 6 and sleep 6 individuals. Full build specs and gallery of photos can be found here:\nhttps://www.wildernessvans.com/2023-f-550-crew-cab-3032-grid/\n\nTo build your dream camper, utilize our Build and Price tool here:\nhttps://build.wildernessvans.com/build/platform?utm_source=YouTube&utm_medium=social+media&utm_campaign=July2025+F550+Grid+series+camper+G2+floor+plan", "Ford F550 GRID Series Truck Camper with G2 Floor Plan", "0e18daaa-fefe-4502-a7f9-6f04b042128f", 10, [], 552, false, "6pby0s0GG1g", "https://www.youtube.com/watch?v=6pby0s0GG1g", 28, "/downloads/Vanlife/2023-08-15 Ford F550 GRID Series Truck Camper with G2 Floor Plan/Ford F550 GRID Series Truck Camper with G2 Floor Plan [6pby0s0GG1g].mkv", false, false, false, 1, ~U[2023-08-15 17:17:49Z], ~U[2026-07-11 14:55:59Z], ~U[2026-07-11 14:55:59Z], "Our latest GRID Series Truck camper built on a 2023 Ford F550. This unit has the G2 Floor Plan and is set up to seat 6 and sleep 6 individuals. Full build specs and gallery of photos can be found here:\nhttps://www.wildernessvans.com/2023-f-550-crew-cab-3032-grid/\n\nTo build your dream camper, utilize our Build and Price tool here:\nhttps://build.wildernessvans.com/build/platform?utm_source=YouTube&utm_medium=social+media&utm_campaign=July2025+F550+Grid+series+camper+G2+floor+plan", "Ford F550 GRID Series Truck Camper with G2 Floor Plan", 10, 552, false, "6pby0s0GG1g", "https://www.youtube.com/watch?v=6pby0s0GG1g", "/downloads/Vanlife/2023-08-15 Ford F550 GRID Series Truck Camper with G2 Floor Plan/Ford F550 GRID Series Truck Camper with G2 Floor Plan [6pby0s0GG1g].mkv", false, ~U[2023-08-15 17:17:49Z]] 10:55:59.634 [debug] QUERY OK source="sources" db=0.1ms idle=102.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:55:59.634 [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] 10:55:59.634 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10134] 10:55:59.634 [debug] Current batch of media processed. Will check again in 1000ms 10:56:00.200 [info] {"source":"oban","duration":214,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:56:00.468 [info] {"source":"oban","duration":622,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:56:00.635 [debug] Current batch of media processed. Will check again in 1000ms 10:56:01.636 [debug] Current batch of media processed. Will check again in 1000ms 10:56:02.637 [debug] Current batch of media processed. Will check again in 1000ms 10:56:03.638 [debug] Current batch of media processed. Will check again in 1000ms 10:56:04.639 [debug] Current batch of media processed. Will check again in 1000ms 10:56:05.640 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "After surviving a terrible car crash where he lost everything, Andrew spent two years building a DIY budget EarthRoamer (Overlanding truck) as the ultimate home for himself, his girlfriend, and his dog. Now they live on the road, exploring and adventuring in every way possible. \n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nANDREW'S YOUTUBE CHANNEL:\nhttps://www.youtube.com/channel/UCxrtaro4GiqPIYmIwnlpIsQ\n\nFOLLOW THEM ON SOCIAL MEDIA:\nhttps://www.instagram.com/andrew__muse/?hl=en\nhttps://www.instagram.com/kickerdogmuse/\n\n----------MORE MORE MORE!------------\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \r\nhttps://kit.co/TinyHouseGiantJourney\r\n\r\nRECEIVE GIFTS AND EXCLUSIVE VIDEOS: \r\nhttps://www.patreon.com/tinyhousegiantjourney\r\n\r\nGET SOCIAL WITH JENNA:\nWebsite: http://www.tinyhousegiantjourney.com\r\nFacebook: http://www.facebook.com/tinyhousegiantjourney\r\nInstagram: http://www.instagram.com/tinyhousegiantjourney\r\nTwitter: http://www.twitter.com/tinyhousegirl\n\n-------------- CREDITS ---------------\nVIDEOGRAPHER:\nMatt Alexander\nhttps://aerialexcellence.us/\n\nEDITOR:\nMarcia Trader\nhttp://www.marciatrader.com \n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOS &VIDEO PROVIDEDED BY & WITH PERMISSION: ANDREW MUSE / HOME OWNER", "duration" => 801, "filename" => "/downloads/Vanlife/2020-06-19 DIY BUDGET EARTHROAMER ⧸⧸ Stunning Overlanding Truck Tour/DIY BUDGET EARTHROAMER ⧸⧸ Stunning Overlanding Truck Tour [WlYrcFdm8zM].mp4", "id" => "WlYrcFdm8zM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=WlYrcFdm8zM", "playlist_index" => 29, "timestamp" => 1592607422, "title" => "DIY BUDGET EARTHROAMER // Stunning Overlanding Truck Tour", "upload_date" => "20200619"} 10:56:05.641 [debug] QUERY OK source="sources" db=0.2ms idle=100.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:56:05.641 [debug] QUERY OK source="sources" db=0.1ms idle=86.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:05.643 [debug] QUERY OK source="media_items" db=1.5ms idle=86.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-06-19 22:57:02Z], 10] 10:56:05.646 [debug] QUERY OK source="media_items" db=3.2ms idle=88.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["After surviving a terrible car crash where he lost everything, Andrew spent two years building a DIY budget EarthRoamer (Overlanding truck) as the ultimate home for himself, his girlfriend, and his dog. Now they live on the road, exploring and adventuring in every way possible. \n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nANDREW'S YOUTUBE CHANNEL:\nhttps://www.youtube.com/channel/UCxrtaro4GiqPIYmIwnlpIsQ\n\nFOLLOW THEM ON SOCIAL MEDIA:\nhttps://www.instagram.com/andrew__muse/?hl=en\nhttps://www.instagram.com/kickerdogmuse/\n\n----------MORE MORE MORE!------------\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \r\nhttps://kit.co/TinyHouseGiantJourney\r\n\r\nRECEIVE GIFTS AND EXCLUSIVE VIDEOS: \r\nhttps://www.patreon.com/tinyhousegiantjourney\r\n\r\nGET SOCIAL WITH JENNA:\nWebsite: http://www.tinyhousegiantjourney.com\r\nFacebook: http://www.facebook.com/tinyhousegiantjourney\r\nInstagram: http://www.instagram.com/tinyhousegiantjourney\r\nTwitter: http://www.twitter.com/tinyhousegirl\n\n-------------- CREDITS ---------------\nVIDEOGRAPHER:\nMatt Alexander\nhttps://aerialexcellence.us/\n\nEDITOR:\nMarcia Trader\nhttp://www.marciatrader.com \n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOS &VIDEO PROVIDEDED BY & WITH PERMISSION: ANDREW MUSE / HOME OWNER", "DIY BUDGET EARTHROAMER // Stunning Overlanding Truck Tour", "451352e3-a033-4a57-b046-0bbbe223efa7", 10, [], 801, false, "WlYrcFdm8zM", "https://www.youtube.com/watch?v=WlYrcFdm8zM", 29, "/downloads/Vanlife/2020-06-19 DIY BUDGET EARTHROAMER ⧸⧸ Stunning Overlanding Truck Tour/DIY BUDGET EARTHROAMER ⧸⧸ Stunning Overlanding Truck Tour [WlYrcFdm8zM].mp4", false, false, false, 1, ~U[2020-06-19 22:57:02Z], ~U[2026-07-11 14:56:05Z], ~U[2026-07-11 14:56:05Z], "After surviving a terrible car crash where he lost everything, Andrew spent two years building a DIY budget EarthRoamer (Overlanding truck) as the ultimate home for himself, his girlfriend, and his dog. Now they live on the road, exploring and adventuring in every way possible. \n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nANDREW'S YOUTUBE CHANNEL:\nhttps://www.youtube.com/channel/UCxrtaro4GiqPIYmIwnlpIsQ\n\nFOLLOW THEM ON SOCIAL MEDIA:\nhttps://www.instagram.com/andrew__muse/?hl=en\nhttps://www.instagram.com/kickerdogmuse/\n\n----------MORE MORE MORE!------------\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \r\nhttps://kit.co/TinyHouseGiantJourney\r\n\r\nRECEIVE GIFTS AND EXCLUSIVE VIDEOS: \r\nhttps://www.patreon.com/tinyhousegiantjourney\r\n\r\nGET SOCIAL WITH JENNA:\nWebsite: http://www.tinyhousegiantjourney.com\r\nFacebook: http://www.facebook.com/tinyhousegiantjourney\r\nInstagram: http://www.instagram.com/tinyhousegiantjourney\r\nTwitter: http://www.twitter.com/tinyhousegirl\n\n-------------- CREDITS ---------------\nVIDEOGRAPHER:\nMatt Alexander\nhttps://aerialexcellence.us/\n\nEDITOR:\nMarcia Trader\nhttp://www.marciatrader.com \n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOS &VIDEO PROVIDEDED BY & WITH PERMISSION: ANDREW MUSE / HOME OWNER", "DIY BUDGET EARTHROAMER // Stunning Overlanding Truck Tour", 10, 801, false, "WlYrcFdm8zM", "https://www.youtube.com/watch?v=WlYrcFdm8zM", "/downloads/Vanlife/2020-06-19 DIY BUDGET EARTHROAMER ⧸⧸ Stunning Overlanding Truck Tour/DIY BUDGET EARTHROAMER ⧸⧸ Stunning Overlanding Truck Tour [WlYrcFdm8zM].mp4", false, ~U[2020-06-19 22:57:02Z]] 10:56:05.647 [debug] QUERY OK source="sources" db=0.2ms idle=92.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:05.647 [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] 10:56:05.648 [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 [10136] 10:56:05.648 [debug] Current batch of media processed. Will check again in 1000ms 10:56:06.648 [debug] Current batch of media processed. Will check again in 1000ms 10:56:07.649 [debug] Current batch of media processed. Will check again in 1000ms 10:56:08.650 [debug] Current batch of media processed. Will check again in 1000ms 10:56:09.651 [debug] Current batch of media processed. Will check again in 1000ms 10:56:10.652 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "For your chance to win a Sprinter Van while supporting two great causes, go to https://www.omaze.com/ambitionstrikes \n\nWe're a husband and wife team who bought 20 acres of bare off-grid land in Northern Idaho. Follow along as we turn a pole barn into our dream shop with an upstairs apartment!\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► JOIN our mailing list https://mailchi.mp/ambitionstrikes/signup\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \nhttps://www.trailtestedmfg.com/shop\nRenogy 10% Discount Code: ambitionstrikes\nOur Favorite Ratchet Straps: https://amzn.to/3yAklSA\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en\n\nAmazon Wish List: https://www.amazon.com/hz/wishlist/ls/234ZGTHGWKQW9?ref_=wl_share\n\nMailing Address:\n Riley Casey\n 105 Vermeer Dr\n STE 2 PMB 141\n Ponderay, ID 83852\n\n00:00 Don't Judge Us...\n00:43 Courtney said we would never...\n01:24 Do we smell?\n02:38 Eating habits\n03:05 Riley's Snack Stashes!\n04:00 Epic campsites?\n06:19 Hidden messes\n07:11 IT EXPLODED!\n08:35 We don't use these very often", "duration" => 586, "filename" => "/downloads/Vanlife/2022-04-03 CAMPER CONFESSIONALS... In Our DIY Earthroamer/CAMPER CONFESSIONALS... In Our DIY Earthroamer [zq_08Y0S3XE].mp4", "id" => "zq_08Y0S3XE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zq_08Y0S3XE", "playlist_index" => 30, "timestamp" => 1648994423, "title" => "CAMPER CONFESSIONALS... In Our DIY Earthroamer", "upload_date" => "20220403"} 10:56:10.653 [debug] QUERY OK source="sources" db=0.2ms idle=1098.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:56:10.653 [debug] QUERY OK source="sources" db=0.1ms idle=1098.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:10.654 [debug] QUERY OK source="media_items" db=0.3ms idle=1098.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-04-03 14:00:23Z], 10] 10:56:10.657 [debug] QUERY OK source="media_items" db=2.6ms idle=1099.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["For your chance to win a Sprinter Van while supporting two great causes, go to https://www.omaze.com/ambitionstrikes \n\nWe're a husband and wife team who bought 20 acres of bare off-grid land in Northern Idaho. Follow along as we turn a pole barn into our dream shop with an upstairs apartment!\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► JOIN our mailing list https://mailchi.mp/ambitionstrikes/signup\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \nhttps://www.trailtestedmfg.com/shop\nRenogy 10% Discount Code: ambitionstrikes\nOur Favorite Ratchet Straps: https://amzn.to/3yAklSA\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en\n\nAmazon Wish List: https://www.amazon.com/hz/wishlist/ls/234ZGTHGWKQW9?ref_=wl_share\n\nMailing Address:\n Riley Casey\n 105 Vermeer Dr\n STE 2 PMB 141\n Ponderay, ID 83852\n\n00:00 Don't Judge Us...\n00:43 Courtney said we would never...\n01:24 Do we smell?\n02:38 Eating habits\n03:05 Riley's Snack Stashes!\n04:00 Epic campsites?\n06:19 Hidden messes\n07:11 IT EXPLODED!\n08:35 We don't use these very often", "CAMPER CONFESSIONALS... In Our DIY Earthroamer", "fe04625e-a482-4b57-bc80-5adaa6fc82f4", 10, [], 586, false, "zq_08Y0S3XE", "https://www.youtube.com/watch?v=zq_08Y0S3XE", 30, "/downloads/Vanlife/2022-04-03 CAMPER CONFESSIONALS... In Our DIY Earthroamer/CAMPER CONFESSIONALS... In Our DIY Earthroamer [zq_08Y0S3XE].mp4", false, false, false, 1, ~U[2022-04-03 14:00:23Z], ~U[2026-07-11 14:56:10Z], ~U[2026-07-11 14:56:10Z], "For your chance to win a Sprinter Van while supporting two great causes, go to https://www.omaze.com/ambitionstrikes \n\nWe're a husband and wife team who bought 20 acres of bare off-grid land in Northern Idaho. Follow along as we turn a pole barn into our dream shop with an upstairs apartment!\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► JOIN our mailing list https://mailchi.mp/ambitionstrikes/signup\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \nhttps://www.trailtestedmfg.com/shop\nRenogy 10% Discount Code: ambitionstrikes\nOur Favorite Ratchet Straps: https://amzn.to/3yAklSA\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en\n\nAmazon Wish List: https://www.amazon.com/hz/wishlist/ls/234ZGTHGWKQW9?ref_=wl_share\n\nMailing Address:\n Riley Casey\n 105 Vermeer Dr\n STE 2 PMB 141\n Ponderay, ID 83852\n\n00:00 Don't Judge Us...\n00:43 Courtney said we would never...\n01:24 Do we smell?\n02:38 Eating habits\n03:05 Riley's Snack Stashes!\n04:00 Epic campsites?\n06:19 Hidden messes\n07:11 IT EXPLODED!\n08:35 We don't use these very often", "CAMPER CONFESSIONALS... In Our DIY Earthroamer", 10, 586, false, "zq_08Y0S3XE", "https://www.youtube.com/watch?v=zq_08Y0S3XE", "/downloads/Vanlife/2022-04-03 CAMPER CONFESSIONALS... In Our DIY Earthroamer/CAMPER CONFESSIONALS... In Our DIY Earthroamer [zq_08Y0S3XE].mp4", false, ~U[2022-04-03 14:00:23Z]] 10:56:10.657 [debug] QUERY OK source="sources" db=0.1ms idle=110.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:10.657 [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:56:10.658 [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 [10138] 10:56:10.658 [debug] Current batch of media processed. Will check again in 1000ms 10:56:11.658 [debug] Current batch of media processed. Will check again in 1000ms 10:56:12.659 [debug] Current batch of media processed. Will check again in 1000ms 10:56:13.660 [debug] Current batch of media processed. Will check again in 1000ms 10:56:14.661 [debug] Current batch of media processed. Will check again in 1000ms 10:56:15.662 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Learn from our mistakes and see what we would change on a future camper build...\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \n\n12V Toilet Fan: https://amzn.to/3i1kaI4\nWindow Scratch Remover: https://amzn.to/2UGc4wg\n\nFolding Trash Can: https://amzn.to/2QysDc7\nDog Food Bin: https://amzn.to/3b70zDN\nMini Instant Pot: https://amzn.to/3u8h2Pw\nAutomatic Dish Soap Dispenser: https://amzn.to/2Si3gfb\nShower Soap Dispenser: https://amzn.to/3e5pucK\n\nhttps://www.trailtestedmfg.com/shop\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\nRenogy 10% Discount Code: ambitionstrikes\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en", "duration" => 564, "filename" => "/downloads/Vanlife/2021-07-12 5 Things We HATE About Our DIY Camper/5 Things We HATE About Our DIY Camper [BLYMGsNS2Uo].mp4", "id" => "BLYMGsNS2Uo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BLYMGsNS2Uo", "playlist_index" => 31, "timestamp" => 1626048126, "title" => "5 Things We HATE About Our DIY Camper", "upload_date" => "20210712"} 10:56:15.663 [debug] QUERY OK source="sources" db=0.1ms idle=1108.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:56:15.663 [debug] QUERY OK source="sources" db=0.0ms idle=1108.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:15.663 [debug] QUERY OK source="media_items" db=0.4ms idle=1108.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-07-12 00:02:06Z], 10] 10:56:15.665 [debug] QUERY OK source="media_items" db=1.4ms idle=1109.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Learn from our mistakes and see what we would change on a future camper build...\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \n\n12V Toilet Fan: https://amzn.to/3i1kaI4\nWindow Scratch Remover: https://amzn.to/2UGc4wg\n\nFolding Trash Can: https://amzn.to/2QysDc7\nDog Food Bin: https://amzn.to/3b70zDN\nMini Instant Pot: https://amzn.to/3u8h2Pw\nAutomatic Dish Soap Dispenser: https://amzn.to/2Si3gfb\nShower Soap Dispenser: https://amzn.to/3e5pucK\n\nhttps://www.trailtestedmfg.com/shop\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\nRenogy 10% Discount Code: ambitionstrikes\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en", "5 Things We HATE About Our DIY Camper", "e7d123e0-e5e3-4d56-ae71-738c07117f3b", 10, [], 564, false, "BLYMGsNS2Uo", "https://www.youtube.com/watch?v=BLYMGsNS2Uo", 31, "/downloads/Vanlife/2021-07-12 5 Things We HATE About Our DIY Camper/5 Things We HATE About Our DIY Camper [BLYMGsNS2Uo].mp4", false, false, false, 1, ~U[2021-07-12 00:02:06Z], ~U[2026-07-11 14:56:15Z], ~U[2026-07-11 14:56:15Z], "Learn from our mistakes and see what we would change on a future camper build...\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \n\n12V Toilet Fan: https://amzn.to/3i1kaI4\nWindow Scratch Remover: https://amzn.to/2UGc4wg\n\nFolding Trash Can: https://amzn.to/2QysDc7\nDog Food Bin: https://amzn.to/3b70zDN\nMini Instant Pot: https://amzn.to/3u8h2Pw\nAutomatic Dish Soap Dispenser: https://amzn.to/2Si3gfb\nShower Soap Dispenser: https://amzn.to/3e5pucK\n\nhttps://www.trailtestedmfg.com/shop\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\nRenogy 10% Discount Code: ambitionstrikes\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en", "5 Things We HATE About Our DIY Camper", 10, 564, false, "BLYMGsNS2Uo", "https://www.youtube.com/watch?v=BLYMGsNS2Uo", "/downloads/Vanlife/2021-07-12 5 Things We HATE About Our DIY Camper/5 Things We HATE About Our DIY Camper [BLYMGsNS2Uo].mp4", false, ~U[2021-07-12 00:02:06Z]] 10:56:15.666 [debug] QUERY OK source="sources" db=0.1ms idle=113.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:15.666 [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:56:15.666 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10140] 10:56:15.666 [debug] Current batch of media processed. Will check again in 1000ms 10:56:16.667 [debug] Current batch of media processed. Will check again in 1000ms 10:56:17.668 [debug] Current batch of media processed. Will check again in 1000ms 10:56:18.669 [debug] Current batch of media processed. Will check again in 1000ms 10:56:19.670 [debug] Current batch of media processed. Will check again in 1000ms 10:56:20.671 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The first 1,000 people to use the link or our code ambitionstrikes will get a 1 month free trial of Skillshare: https://skl.sh/ambitionstrikes04221 \n\nFolding Trash Can: https://amzn.to/3EbbSIp\nDoor Catch: https://amzn.to/3JkdHDL\nGoogle Speaker: https://store.google.com/us/config/google_nest_mini?hl=en-US\nInternet Router: https://amzn.to/3KtTkFh\nToilet Fan: https://amzn.to/3Jrz1XZ\nRear View Mirror/Camera: https://bit.ly/3Jrzt8D\n USE CODE AMBITIONSTRIKES FOR $75 OFF YOUR ORDER!\nDog Door Protectors: https://amzn.to/3NYkqXp\nMini Vacuum: https://amzn.to/3uyPKo9\nLeaf Blower: https://amzn.to/3rhcdnp\nSoap Dispenser: https://amzn.to/3xleeD7\nCoffee Maker: https://amzn.to/38FyIvV\nDog Water Bowl: https://amzn.to/3rdla0S\nShoe Tray: https://amzn.to/35WvQtD\n\nNOTE: Any/all of the links above are affiliate links of which Ambition Strikes receives a small commission from sales of certain items, but the price is the same for you.\n\nWe're a husband and wife team who bought 20 acres of bare off-grid land in Northern Idaho. Follow along as we turn a pole barn into our dream shop with an upstairs apartment!\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► JOIN our mailing list https://mailchi.mp/ambitionstrikes/signup\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \nhttps://www.trailtestedmfg.com/shop\nRenogy 10% Discount Code: ambitionstrikes\nOur Favorite Ratchet Straps: https://amzn.to/3yAklSA\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en\n\nAmazon Wish List: https://www.amazon.com/hz/wishlist/ls/234ZGTHGWKQW9?ref_=wl_share\n\nMailing Address:\n Riley Casey\n 105 Vermeer Dr\n STE 2 PMB 141\n Ponderay, ID 83852\n\n0:00 Introduction\n0:17 Folding Trash Can\n0:54 Door Catch\n3:10 Reliable Internet\n4:12 Toilet Smells\n5:25 BREAK TIME\n7:06 Door Protectors\n7:33 Vacuum\n8:11 Soap Holders\n8:44 Coffee Maker\n10:39 Dog Water Bowl\n11:18 Shoe Tray", "duration" => 717, "filename" => "/downloads/Vanlife/2022-04-10 Super Simple RV Hacks | Make life on the road easy/Super Simple RV Hacks | Make life on the road easy [v21fqdpZvko].mp4", "id" => "v21fqdpZvko", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=v21fqdpZvko", "playlist_index" => 32, "timestamp" => 1649602522, "title" => "Super Simple RV Hacks | Make life on the road easy", "upload_date" => "20220410"} 10:56:20.672 [debug] QUERY OK source="sources" db=0.1ms idle=1117.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:56:20.672 [debug] QUERY OK source="sources" db=0.0ms idle=1117.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:20.673 [debug] QUERY OK source="media_items" db=0.5ms idle=1118.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-04-10 14:55:22Z], 10] 10:56:20.675 [debug] QUERY OK source="media_items" db=1.6ms idle=1116.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The first 1,000 people to use the link or our code ambitionstrikes will get a 1 month free trial of Skillshare: https://skl.sh/ambitionstrikes04221 \n\nFolding Trash Can: https://amzn.to/3EbbSIp\nDoor Catch: https://amzn.to/3JkdHDL\nGoogle Speaker: https://store.google.com/us/config/google_nest_mini?hl=en-US\nInternet Router: https://amzn.to/3KtTkFh\nToilet Fan: https://amzn.to/3Jrz1XZ\nRear View Mirror/Camera: https://bit.ly/3Jrzt8D\n USE CODE AMBITIONSTRIKES FOR $75 OFF YOUR ORDER!\nDog Door Protectors: https://amzn.to/3NYkqXp\nMini Vacuum: https://amzn.to/3uyPKo9\nLeaf Blower: https://amzn.to/3rhcdnp\nSoap Dispenser: https://amzn.to/3xleeD7\nCoffee Maker: https://amzn.to/38FyIvV\nDog Water Bowl: https://amzn.to/3rdla0S\nShoe Tray: https://amzn.to/35WvQtD\n\nNOTE: Any/all of the links above are affiliate links of which Ambition Strikes receives a small commission from sales of certain items, but the price is the same for you.\n\nWe're a husband and wife team who bought 20 acres of bare off-grid land in Northern Idaho. Follow along as we turn a pole barn into our dream shop with an upstairs apartment!\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► JOIN our mailing list https://mailchi.mp/ambitionstrikes/signup\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \nhttps://www.trailtestedmfg.com/shop\nRenogy 10% Discount Code: ambitionstrikes\nOur Favorite Ratchet Straps: https://amzn.to/3yAklSA\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en\n\nAmazon Wish List: https://www.amazon.com/hz/wishlist/ls/234ZGTHGWKQW9?ref_=wl_share\n\nMailing Address:\n Riley Casey\n 105 Vermeer Dr\n STE 2 PMB 141\n Ponderay, ID 83852\n\n0:00 Introduction\n0:17 Folding Trash Can\n0:54 Door Catch\n3:10 Reliable Internet\n4:12 Toilet Smells\n5:25 BREAK TIME\n7:06 Door Protectors\n7:33 Vacuum\n8:11 Soap Holders\n8:44 Coffee Maker\n10:39 Dog Water Bowl\n11:18 Shoe Tray", "Super Simple RV Hacks | Make life on the road easy", "9c6ea93d-4a22-4fae-b02b-a3eee2bed7dd", 10, [], 717, false, "v21fqdpZvko", "https://www.youtube.com/watch?v=v21fqdpZvko", 32, "/downloads/Vanlife/2022-04-10 Super Simple RV Hacks | Make life on the road easy/Super Simple RV Hacks | Make life on the road easy [v21fqdpZvko].mp4", false, false, false, 1, ~U[2022-04-10 14:55:22Z], ~U[2026-07-11 14:56:20Z], ~U[2026-07-11 14:56:20Z], "The first 1,000 people to use the link or our code ambitionstrikes will get a 1 month free trial of Skillshare: https://skl.sh/ambitionstrikes04221 \n\nFolding Trash Can: https://amzn.to/3EbbSIp\nDoor Catch: https://amzn.to/3JkdHDL\nGoogle Speaker: https://store.google.com/us/config/google_nest_mini?hl=en-US\nInternet Router: https://amzn.to/3KtTkFh\nToilet Fan: https://amzn.to/3Jrz1XZ\nRear View Mirror/Camera: https://bit.ly/3Jrzt8D\n USE CODE AMBITIONSTRIKES FOR $75 OFF YOUR ORDER!\nDog Door Protectors: https://amzn.to/3NYkqXp\nMini Vacuum: https://amzn.to/3uyPKo9\nLeaf Blower: https://amzn.to/3rhcdnp\nSoap Dispenser: https://amzn.to/3xleeD7\nCoffee Maker: https://amzn.to/38FyIvV\nDog Water Bowl: https://amzn.to/3rdla0S\nShoe Tray: https://amzn.to/35WvQtD\n\nNOTE: Any/all of the links above are affiliate links of which Ambition Strikes receives a small commission from sales of certain items, but the price is the same for you.\n\nWe're a husband and wife team who bought 20 acres of bare off-grid land in Northern Idaho. Follow along as we turn a pole barn into our dream shop with an upstairs apartment!\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► JOIN our mailing list https://mailchi.mp/ambitionstrikes/signup\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \nhttps://www.trailtestedmfg.com/shop\nRenogy 10% Discount Code: ambitionstrikes\nOur Favorite Ratchet Straps: https://amzn.to/3yAklSA\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en\n\nAmazon Wish List: https://www.amazon.com/hz/wishlist/ls/234ZGTHGWKQW9?ref_=wl_share\n\nMailing Address:\n Riley Casey\n 105 Vermeer Dr\n STE 2 PMB 141\n Ponderay, ID 83852\n\n0:00 Introduction\n0:17 Folding Trash Can\n0:54 Door Catch\n3:10 Reliable Internet\n4:12 Toilet Smells\n5:25 BREAK TIME\n7:06 Door Protectors\n7:33 Vacuum\n8:11 Soap Holders\n8:44 Coffee Maker\n10:39 Dog Water Bowl\n11:18 Shoe Tray", "Super Simple RV Hacks | Make life on the road easy", 10, 717, false, "v21fqdpZvko", "https://www.youtube.com/watch?v=v21fqdpZvko", "/downloads/Vanlife/2022-04-10 Super Simple RV Hacks | Make life on the road easy/Super Simple RV Hacks | Make life on the road easy [v21fqdpZvko].mp4", false, ~U[2022-04-10 14:55:22Z]] 10:56:20.675 [debug] QUERY OK source="sources" db=0.1ms idle=117.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:20.675 [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:56:20.676 [debug] QUERY OK source="media_items" db=0.1ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10141] 10:56:20.676 [debug] Current batch of media processed. Will check again in 1000ms 10:56:21.676 [debug] Current batch of media processed. Will check again in 1000ms 10:56:22.677 [debug] Current batch of media processed. Will check again in 1000ms 10:56:23.678 [debug] Current batch of media processed. Will check again in 1000ms 10:56:24.679 [debug] Current batch of media processed. Will check again in 1000ms 10:56:25.680 [debug] Current batch of media processed. Will check again in 1000ms 10:56:26.681 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Living The Van Life Merch:\nhttps://www.livingthevanlife.com\n\nTom & Caitlyn Morton of Mortons on the move have built themselves a custom 4x4 RV that is basically an Earthroamer on a budget. Join along as Tom and Cait give us a tour of thier Dodge Ram 5500 with Bigfoot truck camper.\n\nMortons On The Move:\nYouTube: https://www.youtube.com/c/MortonsontheMove/\nWebsite: https://www.mortonsonthemove.com\n\nSupport The LTVL Channel:\n--------------\nPaypal: https://www.paypal.me/livingthevanlife\nPatreon: https://www.patreon.com/LivingTheVanLife\n\nFollow me:\nVan Life Instagram: @LivingTheVanLife\nhttps://www.instagram.com/livingthevanlife/\n\nPersonal Instagram: @chad_derosa\nhttps://www.instagram.com/chad_derosa/\n\nMy Current Film Production - “Rockets and Titans”:\nYouTube: https://www.youtube.com/channel/UCaekVy98pF50VoCwWHwl2ZA\nInstagram: https://www.instagram.com/rocketsandtitans/ \nFacebook: https://www.facebook.com/rocketsandtitans/\n\nThe gear I use while Living The Van Life:\n\nBattle Born Off-Grid Battery System:\n—————————————————\nBattle Born GC2 LiFePo4 Batteries: https://bit.ly/3t24Gaj\nVictron Inverter/Charger: https://bit.ly/3eTNuif\nVictron Distributor: https://bit.ly/3vjPuqu\nVictron Solar Controller: https://bit.ly/3t0YLCm\nSecondary Alternator: https://bit.ly/32XIFPc\nWakespeed Alternator Regulator: https://bit.ly/3xGeUkf\nBattle Born Batteries Affiliate Link: http://battlebornbatteries.com?afmc=Living+The+Van+Life\n\nFlareSpace Flares:\n—————————\nFull Flare/Bed Package: https://bit.ly/3nCAQYH\n\nVan Compass Lift, Suspension, Skid Plates\n————————————————————\nStage 6.3 2” Lift and Shocks: https://bit.ly/3gNdEFW\nRear Diff Skid Plate: https://bit.ly/3nxtHcb\nEngine Skid Plate: https://bit.ly/3vrVa1z\n\nWheels & Tires:\n———————\nTrailbuilt Off-Road: https://bit.ly/3xA2Vof\n315/70r17 BFGoodrich KO2 All Terrain Tires: https://bit.ly/3xx91ph\nARB Air Compressor: https://amzn.to/3u4QOgB\nSpeedflate Inflate/Deflate System (preferred): https://bit.ly/3nwrhdL\nStaun Tire Deflators: https://amzn.to/3aOhCu2\n\nOff-Road Recovery Gear:\n————————————\nWarn Winch: https://amzn.to/3dZ6rkc\nSnatch Block: https://amzn.to/3dZcqFu\n8’ Tree Saver: https://amzn.to/3u1clXu\nMaxTrax Recovery Boards: https://amzn.to/2PvqcGw\n\nOff-Road Lighting:\n—————————\nBaja Designs LP9 Pro LED: https://amzn.to/3gRG5lV\nBaja Designs XL Pro LED: https://amzn.to/3nwxcQ1\nRigid Industries Scene Lights: https://amzn.to/3nwxcQ1\n\nCamp Fire & Cooking Equipment:\n————————————————\nNEW: Matthew Paul Ankou Knife: https://www.mpknives.com\nEsee 5 Surival Knife: https://amzn.to/3fnQSkQ\nSolo Stove Ranger - Portable Fire Pit: https://amzn.to/36JD28f\nLodge Dutch Oven Tripod: https://amzn.to/3gnqgjy\n8\" Dutch Oven: https://amzn.to/3ilGFH7\nCooking Gloves: https://amzn.to/2BXdIjU\nJetboil Cooking System: https://amzn.to/2TH3yrF\nBottle Top Propane Stove: https://amzn.to/2SS82P0\nSolo Stove Titan - Twig Stove: https://amzn.to/3cbYAeZ\nSolo Stove Pot 1800: https://amzn.to/3gxNioK\n\nForestry Tools:\n———————\nTrayvax Trek Field Knife - 10% Coupon Code: VANLIFE - https://bit.ly/2BpqaJh\nEsee 5 Surival Knife: https://amzn.to/3fnQSkQ\nSchrade SCHF9 Camp Knife: https://amzn.to/2Mwr7Ru\n21\" Folding Saw: https://amzn.to/2RQjFmO\nCampcraft Canvas Sheath: https://amzn.to/2T4aJMr\nGransfors Bruk Hand Hatchet: https://amzn.to/2SFqLMg\nHults Bruk Akka Foresters Axe: https://amzn.to/2tQx6LD\nBareBones Living - Japanese Nata Tool: https://bit.ly/2yHBXRL\n\nMy Cold Weather Clothing:\n--------------\nFjallraven Pants: https://amzn.to/3fnwDn4\nFjallraven Jacket: https://amzn.to/2L2BYm7\nFjallraven Hat: https://amzn.to/2SEj6xE\nMarmot Down Coat: https://amzn.to/2Wuol4h\nBase Layer Bottoms: https://amzn.to/3b8XvUL\nBase Layer Top: https://amzn.to/2YC2xGB\nWoolX Socks: https://amzn.to/2W5hf7i\nSorel Winter Boots: https://amzn.to/3fpVirp\n\nOLight Flashlights: 10% off Coupon Code : VanLife\nhttps://olight.idevaffiliate.com/idevaffiliate.php?id=477\n\nWinter Van Equipment:\n——————-\n5KW 12V Diesel Heater: https://amzn.to/2OSFrGC\n\nPersonal Wear:\n———————\nOakley Sunglasses: https://amzn.to/2Y7URcu\nCarhartt Pants: https://amzn.to/2CvdbTM\n\nFishing Gear\n————————-\nRedington" <> ..., "duration" => 1620, "filename" => "/downloads/Vanlife/2022-01-03 DIY "EarthRoamer" On a Budget - 4x4 RV Tour - Living The Van Life/DIY "EarthRoamer" On a Budget - 4x4 RV Tour - Living The Van Life [tF930nPZxxw].mkv", "id" => "tF930nPZxxw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tF930nPZxxw", "playlist_index" => 33, "timestamp" => 1641220250, "title" => "DIY \"EarthRoamer\" On a Budget - 4x4 RV Tour - Living The Van Life", "upload_date" => "20220103"} 10:56:26.682 [debug] QUERY OK source="sources" db=0.1ms idle=127.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:56:26.682 [debug] QUERY OK source="sources" db=0.0ms idle=127.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:26.683 [debug] QUERY OK source="media_items" db=0.3ms idle=128.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-01-03 14:30:50Z], 10] 10:56:26.687 [debug] QUERY OK source="media_items" db=3.6ms idle=128.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Living The Van Life Merch:\nhttps://www.livingthevanlife.com\n\nTom & Caitlyn Morton of Mortons on the move have built themselves a custom 4x4 RV that is basically an Earthroamer on a budget. Join along as Tom and Cait give us a tour of thier Dodge Ram 5500 with Bigfoot truck camper.\n\nMortons On The Move:\nYouTube: https://www.youtube.com/c/MortonsontheMove/\nWebsite: https://www.mortonsonthemove.com\n\nSupport The LTVL Channel:\n--------------\nPaypal: https://www.paypal.me/livingthevanlife\nPatreon: https://www.patreon.com/LivingTheVanLife\n\nFollow me:\nVan Life Instagram: @LivingTheVanLife\nhttps://www.instagram.com/livingthevanlife/\n\nPersonal Instagram: @chad_derosa\nhttps://www.instagram.com/chad_derosa/\n\nMy Current Film Production - “Rockets and Titans”:\nYouTube: https://www.youtube.com/channel/UCaekVy98pF50VoCwWHwl2ZA\nInstagram: https://www.instagram.com/rocketsandtitans/ \nFacebook: https://www.facebook.com/rocketsandtitans/\n\nThe gear I use while Living The Van Life:\n\nBattle Born Off-Grid Battery System:\n—————————————————\nBattle Born GC2 LiFePo4 Batteries: https://bit.ly/3t24Gaj\nVictron Inverter/Charger: https://bit.ly/3eTNuif\nVictron Distributor: https://bit.ly/3vjPuqu\nVictron Solar Controller: https://bit.ly/3t0YLCm\nSecondary Alternator: https://bit.ly/32XIFPc\nWakespeed Alternator Regulator: https://bit.ly/3xGeUkf\nBattle Born Batteries Affiliate Link: http://battlebornbatteries.com?afmc=Living+The+Van+Life\n\nFlareSpace Flares:\n—————————\nFull Flare/Bed Package: https://bit.ly/3nCAQYH\n\nVan Compass Lift, Suspension, Skid Plates\n————————————————————\nStage 6.3 2” Lift and Shocks: https://bit.ly/3gNdEFW\nRear Diff Skid Plate: https://bit.ly/3nxtHcb\nEngine Skid Plate: https://bit.ly/3vrVa1z\n\nWheels & Tires:\n———————\nTrailbuilt Off-Road: https://bit.ly/3xA2Vof\n315/70r17 BFGoodrich KO2 All Terrain Tires: https://bit.ly/3xx91ph\nARB Air Compressor: https://amzn.to/3u4QOgB\nSpeedflate Inflate/Deflate System (preferred): https://bit.ly/3nwrhdL\nStaun Tire Deflators: https://amzn.to/3aOhCu2\n\nOff-Road Recovery Gear:\n————————————\nWarn Winch: https://amzn.to/3dZ6rkc\nSnatch Block: https://amzn.to/3dZcqFu\n8’ Tree Saver: https://amzn.to/3u1clXu\nMaxTrax Recovery Boards: https://amzn.to/2PvqcGw\n\nOff-Road Lighting:\n—————————\nBaja Designs LP9 Pro LED: https://amzn.to/3gRG5lV\nBaja Designs XL Pro LED: https://amzn.to/3nwxcQ1\nRigid Industries Scene Lights: https://amzn.to/3nwxcQ1\n\nCamp Fire & Cooking Equipment:\n————————————————\nNEW: Matthew Paul Ankou Knife: https://www.mpknives.com\nEsee 5 Surival Knife: https://amzn.to/3fnQSkQ\nSolo Stove Ranger - Portable Fire Pit: https://amzn.to/36JD28f\nLodge Dutch Oven Tripod: https://amzn.to/3gnqgjy\n8\" Dutch Oven: https://amzn.to/3ilGFH7\nCooking Gloves: https://amzn.to/2BXdIjU\nJetboil Cooking System: https://amzn.to/2TH3yrF\nBottle Top Propane Stove: https://amzn.to/2SS82P0\nSolo Stove Titan - Twig Stove: https://amzn.to/3cbYAeZ\nSolo Stove Pot 1800: https://amzn.to/3gxNioK\n\nForestry Tools:\n———————\nTrayvax Trek Field Knife - 10% Coupon Code: VANLIFE - https://bit.ly/2BpqaJh\nEsee 5 Surival Knife: https://amzn.to/3fnQSkQ\nSchrade SCHF9 Camp Knife: https://amzn.to/2Mwr7Ru\n21\" Folding Saw: https://amzn.to/2RQjFmO\nCampcraft Canvas Sheath: https://amzn.to/2T4aJMr\nGransfors Bruk Hand Hatchet: https://amzn.to/2SFqLMg\nHults Bruk Akka Foresters Axe: https://amzn.to/2tQx6LD\nBareBones Living - Japanese Nata Tool: https://bit.ly/2yHBXRL\n\nMy Cold Weather Clothing:\n--------------\nFjallraven Pants: https://amzn.to/3fnwDn4\nFjallraven Jacket: https://amzn.to/2L2BYm7\nFjallraven Hat: https://amzn.to/2SEj6xE\nMarmot Down Coat: https://amzn.to/2Wuol4h\nBase Layer Bottoms: https://amzn.to/3b8XvUL\nBase Layer Top: https://amzn.to/2YC2xGB\nWoolX Socks: https://amzn.to/2W5hf7i\nSorel Winter Boots: https://amzn.to/3fpVirp\n\nOLight Flashlights: 10% off Coupon Code : VanLife\nhttps://olight.idevaffiliate.com/idevaffiliate.php?id=477\n\nWinter Van Equipment:\n——————-\n5KW 12V Diesel Heater: https://amzn.to/2OSFrGC\n\nPersonal Wear:\n———————\nOakley Sunglasses: https://amzn.to/2Y7URcu\nCarhartt Pants: https://amzn.to/2CvdbTM\n\nFishing Gear\n————————-\nRedington" <> ..., "DIY \"EarthRoamer\" On a Budget - 4x4 RV Tour - Living The Van Life", "29b623ec-4044-4e62-b410-e321cdfef9b7", 10, [], 1620, false, "tF930nPZxxw", "https://www.youtube.com/watch?v=tF930nPZxxw", 33, "/downloads/Vanlife/2022-01-03 DIY "EarthRoamer" On a Budget - 4x4 RV Tour - Living The Van Life/DIY "EarthRoamer" On a Budget - 4x4 RV Tour - Living The Van Life [tF930nPZxxw].mkv", false, false, false, 1, ~U[2022-01-03 14:30:50Z], ~U[2026-07-11 14:56:26Z], ~U[2026-07-11 14:56:26Z], "Living The Van Life Merch:\nhttps://www.livingthevanlife.com\n\nTom & Caitlyn Morton of Mortons on the move have built themselves a custom 4x4 RV that is basically an Earthroamer on a budget. Join along as Tom and Cait give us a tour of thier Dodge Ram 5500 with Bigfoot truck camper.\n\nMortons On The Move:\nYouTube: https://www.youtube.com/c/MortonsontheMove/\nWebsite: https://www.mortonsonthemove.com\n\nSupport The LTVL Channel:\n--------------\nPaypal: https://www.paypal.me/livingthevanlife\nPatreon: https://www.patreon.com/LivingTheVanLife\n\nFollow me:\nVan Life Instagram: @LivingTheVanLife\nhttps://www.instagram.com/livingthevanlife/\n\nPersonal Instagram: @chad_derosa\nhttps://www.instagram.com/chad_derosa/\n\nMy Current Film Production - “Rockets and Titans”:\nYouTube: https://www.youtube.com/channel/UCaekVy98pF50VoCwWHwl2ZA\nInstagram: https://www.instagram.com/rocketsandtitans/ \nFacebook: https://www.facebook.com/rocketsandtitans/\n\nThe gear I use while Living The Van Life:\n\nBattle Born Off-Grid Battery System:\n—————————————————\nBattle Born GC2 LiFePo4 Batteries: https://bit.ly/3t24Gaj\nVictron Inverter/Charger: https://bit.ly/3eTNuif\nVictron Distributor: https://bit.ly/3vjPuqu\nVictron Solar Controller: https://bit.ly/3t0YLCm\nSecondary Alternator: https://bit.ly/32XIFPc\nWakespeed Alternator Regulator: https://bit.ly/3xGeUkf\nBattle Born Batteries Affiliate Link: http://battlebornbatteries.com?afmc=Living+The+Van+Life\n\nFlareSpace Flares:\n—————————\nFull Flare/Bed Package: https://bit.ly/3nCAQYH\n\nVan Compass Lift, Suspension, Skid Plates\n————————————————————\nStage 6.3 2” Lift and Shocks: https://bit.ly/3gNdEFW\nRear Diff Skid Plate: https://bit.ly/3nxtHcb\nEngine Skid Plate: https://bit.ly/3vrVa1z\n\nWheels & Tires:\n———————\nTrailbuilt Off-Road: https://bit.ly/3xA2Vof\n315/70r17 BFGoodrich KO2 All Terrain Tires: https://bit.ly/3xx91ph\nARB Air Compressor: https://amzn.to/3u4QOgB\nSpeedflate Inflate/Deflate System (preferred): https://bit.ly/3nwrhdL\nStaun Tire Deflators: https://amzn.to/3aOhCu2\n\nOff-Road Recovery Gear:\n————————————\nWarn Winch: https://amzn.to/3dZ6rkc\nSnatch Block: https://amzn.to/3dZcqFu\n8’ Tree Saver: https://amzn.to/3u1clXu\nMaxTrax Recovery Boards: https://amzn.to/2PvqcGw\n\nOff-Road L (truncated) 10:56:26.687 [debug] QUERY OK source="sources" db=0.1ms idle=122.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:26.687 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:56:26.688 [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 [10143] 10:56:26.688 [debug] Current batch of media processed. Will check again in 1000ms 10:56:27.688 [debug] Current batch of media processed. Will check again in 1000ms 10:56:28.689 [debug] Current batch of media processed. Will check again in 1000ms 10:56:29.690 [debug] Current batch of media processed. Will check again in 1000ms 10:56:30.469 [info] {"source":"oban","duration":673,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:56:30.691 [debug] Current batch of media processed. Will check again in 1000ms 10:56:31.692 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Lindsey is not your average gal. For one, she's not afraid of living solo and getting a little greased up when repairing her RV, but also she's found a way to work while living in some of the most remote areas in the USA. And her overlander RV doesn't just act as a 4X4 vehicle to get her around, it also is super functional and cute inside!\n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nFOLLOW LINDSEY:\nhttps://linktr.ee/girlgoneglamping\nhttps://instagram.com/girlgoneglamping\n\n_______________________\n\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \nhttps://kit.co/TinyHouseGiantJourney\n\nRECEIVE GIFTS AND EXCLUSIVE VIDEOS: \nhttps://www.patreon.com/tinyhousegiantjourney\n\n________________________\n\nMORE MORE MORE!\nWebsite: http://www.tinyhousegiantjourney.com\nFacebook: https://www.facebook.com/tinyhousegiantjourney\nInstagram: https://www.instagram.com/tinyhousegiantjourney/\nTik Tok: https://www.tiktok.com/@tinyhousegiantjourney\nTwitter: http://www.twitter.com/tinyhousegirl\nSnapchat: https://story.snapchat.com/p/e08b80cb-ec0c-44a2-9e4f-756f2f9c512c/1866148669855744?sender_web_id=28172bf6-43f5-4675-86c6-c74242ce2297&device_type=desktop&is_copy_url=true\n\nCREDITS\nPRODUCED & HOSTED BY: \nJenna Kausal\n\nVIDEOGRAPHY BY: \nMark Dexter\nhttps://dextercreative.portfolio.site/\n\nEDITOR:\nMarcia Trader\nhttp://www.marciatrader.com \n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOGRAPHY/VIDEOGRAPHY PROVIDED BY OWNERS\n\n________________________\n\n0:00 Intro\n0:55 Meet Lindsey! A solo female traveler for 6 years \n1:18 Introduction to the outdoors\n1:25 Earthroamer inspiration\n1:43 Total cost of the rig\n2:16 Overview of the vehicle\n3:03 About the overlander truck \n3:47 Exterior tour\n5:08 Off-grid solar setup\n5:21 Heating, water, & more!\n6:24 Step inside Lindsey's budget earthroamer\n6:36 Kitchen tour\n7:54 Dining nook w/ space saving & storage solutions\n10:04 Bathroom\n10:47 Fridge & water tanks\n11:22 Battery storage\n11:55 Closet & vanity\n12:11 A cozy bedroom\n12:39 Finding fulfillment through nomadic living\n13:27 Outro", "duration" => 828, "filename" => "/downloads/Vanlife/2023-06-09 This Luxury RV is her full-time home! Budget Earthroamer/This Luxury RV is her full-time home! Budget Earthroamer [lSi0hyWC3AU].mp4", "id" => "lSi0hyWC3AU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lSi0hyWC3AU", "playlist_index" => 34, "timestamp" => 1686326788, "title" => "This Luxury RV is her full-time home! Budget Earthroamer", "upload_date" => "20230609"} 10:56:31.693 [debug] QUERY OK source="sources" db=0.1ms idle=1138.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:56:31.693 [debug] QUERY OK source="sources" db=0.1ms idle=1138.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:31.694 [debug] QUERY OK source="media_items" db=0.4ms idle=1124.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-09 16:06:28Z], 10] 10:56:31.695 [debug] QUERY OK source="media_items" db=1.2ms idle=139.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Lindsey is not your average gal. For one, she's not afraid of living solo and getting a little greased up when repairing her RV, but also she's found a way to work while living in some of the most remote areas in the USA. And her overlander RV doesn't just act as a 4X4 vehicle to get her around, it also is super functional and cute inside!\n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nFOLLOW LINDSEY:\nhttps://linktr.ee/girlgoneglamping\nhttps://instagram.com/girlgoneglamping\n\n_______________________\n\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \nhttps://kit.co/TinyHouseGiantJourney\n\nRECEIVE GIFTS AND EXCLUSIVE VIDEOS: \nhttps://www.patreon.com/tinyhousegiantjourney\n\n________________________\n\nMORE MORE MORE!\nWebsite: http://www.tinyhousegiantjourney.com\nFacebook: https://www.facebook.com/tinyhousegiantjourney\nInstagram: https://www.instagram.com/tinyhousegiantjourney/\nTik Tok: https://www.tiktok.com/@tinyhousegiantjourney\nTwitter: http://www.twitter.com/tinyhousegirl\nSnapchat: https://story.snapchat.com/p/e08b80cb-ec0c-44a2-9e4f-756f2f9c512c/1866148669855744?sender_web_id=28172bf6-43f5-4675-86c6-c74242ce2297&device_type=desktop&is_copy_url=true\n\nCREDITS\nPRODUCED & HOSTED BY: \nJenna Kausal\n\nVIDEOGRAPHY BY: \nMark Dexter\nhttps://dextercreative.portfolio.site/\n\nEDITOR:\nMarcia Trader\nhttp://www.marciatrader.com \n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOGRAPHY/VIDEOGRAPHY PROVIDED BY OWNERS\n\n________________________\n\n0:00 Intro\n0:55 Meet Lindsey! A solo female traveler for 6 years \n1:18 Introduction to the outdoors\n1:25 Earthroamer inspiration\n1:43 Total cost of the rig\n2:16 Overview of the vehicle\n3:03 About the overlander truck \n3:47 Exterior tour\n5:08 Off-grid solar setup\n5:21 Heating, water, & more!\n6:24 Step inside Lindsey's budget earthroamer\n6:36 Kitchen tour\n7:54 Dining nook w/ space saving & storage solutions\n10:04 Bathroom\n10:47 Fridge & water tanks\n11:22 Battery storage\n11:55 Closet & vanity\n12:11 A cozy bedroom\n12:39 Finding fulfillment through nomadic living\n13:27 Outro", "This Luxury RV is her full-time home! Budget Earthroamer", "22e079f1-44f4-49d0-8dd7-d36db98c96cf", 10, [], 828, false, "lSi0hyWC3AU", "https://www.youtube.com/watch?v=lSi0hyWC3AU", 34, "/downloads/Vanlife/2023-06-09 This Luxury RV is her full-time home! Budget Earthroamer/This Luxury RV is her full-time home! Budget Earthroamer [lSi0hyWC3AU].mp4", false, false, false, 1, ~U[2023-06-09 16:06:28Z], ~U[2026-07-11 14:56:31Z], ~U[2026-07-11 14:56:31Z], "Lindsey is not your average gal. For one, she's not afraid of living solo and getting a little greased up when repairing her RV, but also she's found a way to work while living in some of the most remote areas in the USA. And her overlander RV doesn't just act as a 4X4 vehicle to get her around, it also is super functional and cute inside!\n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nFOLLOW LINDSEY:\nhttps://linktr.ee/girlgoneglamping\nhttps://instagram.com/girlgoneglamping\n\n_______________________\n\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \nhttps://kit.co/TinyHouseGiantJourney\n\nRECEIVE GIFTS AND EXCLUSIVE VIDEOS: \nhttps://www.patreon.com/tinyhousegiantjourney\n\n________________________\n\nMORE MORE MORE!\nWebsite: http://www.tinyhousegiantjourney.com\nFacebook: https://www.facebook.com/tinyhousegiantjourney\nInstagram: https://www.instagram.com/tinyhousegiantjourney/\nTik Tok: https://www.tiktok.com/@tinyhousegiantjourney\nTwitter: http://www.twitter.com/tinyhousegirl\nSnapchat: https://story.snapchat.com/p/e08b80cb-ec0c-44a2-9e4f-756f2f9c512c/1866148669855744?sender_web_id=28172bf6-43f5-4675-86c6-c74242ce2297&device_type=desktop&is_copy_url=true\n\nCREDITS\nPRODUCED & HOSTED BY: \nJenna Kausal\n\nVIDEOGRAPHY BY: \nMark Dexter\nhttps://dextercreative.portfolio.site/\n\nEDITOR:\nMarcia Trader\nhttp://www.marciatrader.com \n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOGRAPHY/VIDEOGRAPHY PROVIDED BY OWNERS\n\n________________________\n\n0:00 Intro\n0:55 Meet Lindsey! A solo female traveler for 6 years \n1:18 Introduction to the outdoors\n1:25 Earthroamer inspiration\n1:43 Total cost of the rig\n2:16 Overview of the vehicle\n3:03 About the overlander truck \n3:47 Exterior tour\n5:08 Off-grid solar setup\n5:21 Heating, water, & more!\n6:24 Step inside Lindsey's budget earthroamer\n6:36 Kitchen tour\n7:54 Dining nook w/ space saving & storage solutions\n10:04 Bathroom\n10:47 Fridge & water tanks\n11:22 Battery storage\n11:55 Closet & vanity\n12:11 A cozy bedroom\n12:39 Finding fulfillment through nomadic living\n13:27 Outro", "This Luxury RV is her full-time home! Budget Earthroamer", 10, 828, false, "lSi0hyWC3AU", "https://www.youtube.com/watch?v=lSi0hyWC3AU", "/downloads/Vanlife/2023-06-09 This Luxury RV is her full-time home! Budget Earthroamer/This Luxury RV is her full-time home! Budget Earthroamer [lSi0hyWC3AU].mp4", false, ~U[2023-06-09 16:06:28Z]] 10:56:31.696 [debug] QUERY OK source="sources" db=0.1ms idle=125.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:31.696 [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] 10:56:31.696 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10145] 10:56:31.696 [debug] Current batch of media processed. Will check again in 1000ms 10:56:32.697 [debug] Current batch of media processed. Will check again in 1000ms 10:56:33.698 [debug] Current batch of media processed. Will check again in 1000ms 10:56:34.699 [debug] Current batch of media processed. Will check again in 1000ms 10:56:35.700 [debug] Current batch of media processed. Will check again in 1000ms 10:56:36.701 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We've been living in The MUSEROAMER, an expedition vehicle we built over the course of two years, for eight months now. The goal was to build an EarthRoamer like vehicle, but for 10% of the cost. In this video we take you through a full tour of our tiny home on wheels, talk about what we would have done differently, and what we plan to do in the future. Let us know what you think!\n\nMUSEROAMER Project Playlist: https://youtu.be/gNQ8YGWE5c4\nTiny Home Adventure Season 3 Playlist: https://youtu.be/6RsBjUlB4zc\n\nIf you want to help keep our wheels literally rolling, please check out our Patreon page. There you can find ways to get exclusive behind the scenes footage, merchandise, one on one calls with us, and more! https://www.patreon.com/AndrewMuse\n\nSpecial Thanks To Our NEXT Level Patrons:\n-Charles Lapage\n-Ruth Voss\n-Anton Sharapov\n-Gretchen Jameson\n-Keenan Ryan\n-The Lykkens\n-Kelsea Perkinson\n-Kris Del Rosario\n-Lisa Mandelin\n-Craig Lester\n-The Abels\n-Justin Irani\n-Aaron Dodell\n\nMake sure to stay up to date with our latest adventures on Instagram:\n@andrew__muse https://www.instagram.com/andrew__muse/\n@kickerdogmuse https://www.instagram.com/kickerdogmuse/\n@theunexpectedadventuress https://www.instagram.com/theunexpectedadventuress/\n@tinyhomeadventure https://www.instagram.com/tinyhomeadventure/\n\nFilmed and Edited By:\nAndrew Muse\nLiam Pickhardt https://www.instagram.com/liampickhardt/\n\nFilmed On:\nDJI Mavic Pro 2 - https://amzn.to/2FXriom\nGH5S - https://amzn.to/2WRwtvv\nDJI Ronin S - https://amzn.to/30u4xhS\nGoPro Hero 9 - https://amzn.to/3k2EzMo\nGoPro Hero 8 - https://amzn.to/2Lbgrre\nManfrotto Tripod - https://amzn.to/2G9OzTh\nGoPro MAX - https://amzn.to/30KsC7b\n\nMobil Satellite Technologies Wi-Fi Solution - https://bit.ly/31BxUSV", "duration" => 1077, "filename" => "/downloads/Vanlife/2020-12-07 DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project/DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project [NhiBmQy6OFE].mp4", "id" => "NhiBmQy6OFE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NhiBmQy6OFE", "playlist_index" => 35, "timestamp" => 1607366761, "title" => "DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project", "upload_date" => "20201207"} 10:56:36.702 [debug] QUERY OK source="sources" db=0.1ms idle=1147.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:56:36.702 [debug] QUERY OK source="sources" db=0.0ms idle=1147.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:36.702 [debug] QUERY OK source="media_items" db=0.3ms idle=1147.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-12-07 18:46:01Z], 10] 10:56:36.704 [debug] QUERY OK source="media_items" db=0.9ms idle=1129.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We've been living in The MUSEROAMER, an expedition vehicle we built over the course of two years, for eight months now. The goal was to build an EarthRoamer like vehicle, but for 10% of the cost. In this video we take you through a full tour of our tiny home on wheels, talk about what we would have done differently, and what we plan to do in the future. Let us know what you think!\n\nMUSEROAMER Project Playlist: https://youtu.be/gNQ8YGWE5c4\nTiny Home Adventure Season 3 Playlist: https://youtu.be/6RsBjUlB4zc\n\nIf you want to help keep our wheels literally rolling, please check out our Patreon page. There you can find ways to get exclusive behind the scenes footage, merchandise, one on one calls with us, and more! https://www.patreon.com/AndrewMuse\n\nSpecial Thanks To Our NEXT Level Patrons:\n-Charles Lapage\n-Ruth Voss\n-Anton Sharapov\n-Gretchen Jameson\n-Keenan Ryan\n-The Lykkens\n-Kelsea Perkinson\n-Kris Del Rosario\n-Lisa Mandelin\n-Craig Lester\n-The Abels\n-Justin Irani\n-Aaron Dodell\n\nMake sure to stay up to date with our latest adventures on Instagram:\n@andrew__muse https://www.instagram.com/andrew__muse/\n@kickerdogmuse https://www.instagram.com/kickerdogmuse/\n@theunexpectedadventuress https://www.instagram.com/theunexpectedadventuress/\n@tinyhomeadventure https://www.instagram.com/tinyhomeadventure/\n\nFilmed and Edited By:\nAndrew Muse\nLiam Pickhardt https://www.instagram.com/liampickhardt/\n\nFilmed On:\nDJI Mavic Pro 2 - https://amzn.to/2FXriom\nGH5S - https://amzn.to/2WRwtvv\nDJI Ronin S - https://amzn.to/30u4xhS\nGoPro Hero 9 - https://amzn.to/3k2EzMo\nGoPro Hero 8 - https://amzn.to/2Lbgrre\nManfrotto Tripod - https://amzn.to/2G9OzTh\nGoPro MAX - https://amzn.to/30KsC7b\n\nMobil Satellite Technologies Wi-Fi Solution - https://bit.ly/31BxUSV", "DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project", "bc091452-f7aa-440f-b9f6-bbf01e00a693", 10, [], 1077, false, "NhiBmQy6OFE", "https://www.youtube.com/watch?v=NhiBmQy6OFE", 35, "/downloads/Vanlife/2020-12-07 DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project/DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project [NhiBmQy6OFE].mp4", false, false, false, 1, ~U[2020-12-07 18:46:01Z], ~U[2026-07-11 14:56:36Z], ~U[2026-07-11 14:56:36Z], "We've been living in The MUSEROAMER, an expedition vehicle we built over the course of two years, for eight months now. The goal was to build an EarthRoamer like vehicle, but for 10% of the cost. In this video we take you through a full tour of our tiny home on wheels, talk about what we would have done differently, and what we plan to do in the future. Let us know what you think!\n\nMUSEROAMER Project Playlist: https://youtu.be/gNQ8YGWE5c4\nTiny Home Adventure Season 3 Playlist: https://youtu.be/6RsBjUlB4zc\n\nIf you want to help keep our wheels literally rolling, please check out our Patreon page. There you can find ways to get exclusive behind the scenes footage, merchandise, one on one calls with us, and more! https://www.patreon.com/AndrewMuse\n\nSpecial Thanks To Our NEXT Level Patrons:\n-Charles Lapage\n-Ruth Voss\n-Anton Sharapov\n-Gretchen Jameson\n-Keenan Ryan\n-The Lykkens\n-Kelsea Perkinson\n-Kris Del Rosario\n-Lisa Mandelin\n-Craig Lester\n-The Abels\n-Justin Irani\n-Aaron Dodell\n\nMake sure to stay up to date with our latest adventures on Instagram:\n@andrew__muse https://www.instagram.com/andrew__muse/\n@kickerdogmuse https://www.instagram.com/kickerdogmuse/\n@theunexpectedadventuress https://www.instagram.com/theunexpectedadventuress/\n@tinyhomeadventure https://www.instagram.com/tinyhomeadventure/\n\nFilmed and Edited By:\nAndrew Muse\nLiam Pickhardt https://www.instagram.com/liampickhardt/\n\nFilmed On:\nDJI Mavic Pro 2 - https://amzn.to/2FXriom\nGH5S - https://amzn.to/2WRwtvv\nDJI Ronin S - https://amzn.to/30u4xhS\nGoPro Hero 9 - https://amzn.to/3k2EzMo\nGoPro Hero 8 - https://amzn.to/2Lbgrre\nManfrotto Tripod - https://amzn.to/2G9OzTh\nGoPro MAX - https://amzn.to/30KsC7b\n\nMobil Satellite Technologies Wi-Fi Solution - https://bit.ly/31BxUSV", "DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project", 10, 1077, false, "NhiBmQy6OFE", "https://www.youtube.com/watch?v=NhiBmQy6OFE", "/downloads/Vanlife/2020-12-07 DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project/DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project [NhiBmQy6OFE].mp4", false, ~U[2020-12-07 18:46:01Z]] 10:56:36.704 [debug] QUERY OK source="sources" db=0.1ms idle=129.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:36.704 [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] 10:56:36.705 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10147] 10:56:36.705 [debug] Current batch of media processed. Will check again in 1000ms 10:56:37.705 [debug] Current batch of media processed. Will check again in 1000ms 10:56:38.706 [debug] Current batch of media processed. Will check again in 1000ms 10:56:39.707 [debug] Current batch of media processed. Will check again in 1000ms 10:56:40.708 [debug] Current batch of media processed. Will check again in 1000ms 10:56:41.710 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how me made it happen!\n\nOn this episode we start to build the outer shell and basic frame. My father who I haven't had a relationship with in over 20 years joins the team, and we fight an uphill battle to get the shell off the ground. \n\nTime Elapsed:\nTruck Purchased 3/18/2018. We waited 4 months on a fiberglass guy to never came through.\nWorked started - 11/12/18 - 11/19/2018 ~8 days\nApproximate Budget: $14,650 of $30,000 (Including Truck $10,000)\n\nI personally think the \"Muse Roamer\" is going to the the pinnacle of the van life movement!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "duration" => 668, "filename" => "/downloads/Vanlife/2019-12-02 MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle!/MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle! [gNQ8YGWE5c4].mp4", "id" => "gNQ8YGWE5c4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gNQ8YGWE5c4", "playlist_index" => 36, "timestamp" => 1575245145, "title" => "MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle!", "upload_date" => "20191202"} 10:56:41.710 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1155.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:56:41.710 [debug] QUERY OK source="sources" db=0.1ms idle=1156.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:41.711 [debug] QUERY OK source="media_items" db=0.3ms idle=1156.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2019-12-02 00:05:45Z], 10] 10:56:41.713 [debug] QUERY OK source="media_items" db=1.6ms idle=1132.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how me made it happen!\n\nOn this episode we start to build the outer shell and basic frame. My father who I haven't had a relationship with in over 20 years joins the team, and we fight an uphill battle to get the shell off the ground. \n\nTime Elapsed:\nTruck Purchased 3/18/2018. We waited 4 months on a fiberglass guy to never came through.\nWorked started - 11/12/18 - 11/19/2018 ~8 days\nApproximate Budget: $14,650 of $30,000 (Including Truck $10,000)\n\nI personally think the \"Muse Roamer\" is going to the the pinnacle of the van life movement!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle!", "5611bb62-62b0-430d-a124-1ad9f0235a74", 10, [], 668, false, "gNQ8YGWE5c4", "https://www.youtube.com/watch?v=gNQ8YGWE5c4", 36, "/downloads/Vanlife/2019-12-02 MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle!/MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle! [gNQ8YGWE5c4].mp4", false, false, false, 1, ~U[2019-12-02 00:05:45Z], ~U[2026-07-11 14:56:41Z], ~U[2026-07-11 14:56:41Z], "Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how me made it happen!\n\nOn this episode we start to build the outer shell and basic frame. My father who I haven't had a relationship with in over 20 years joins the team, and we fight an uphill battle to get the shell off the ground. \n\nTime Elapsed:\nTruck Purchased 3/18/2018. We waited 4 months on a fiberglass guy to never came through.\nWorked started - 11/12/18 - 11/19/2018 ~8 days\nApproximate Budget: $14,650 of $30,000 (Including Truck $10,000)\n\nI personally think the \"Muse Roamer\" is going to the the pinnacle of the van life movement!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle!", 10, 668, false, "gNQ8YGWE5c4", "https://www.youtube.com/watch?v=gNQ8YGWE5c4", "/downloads/Vanlife/2019-12-02 MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle!/MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle! [gNQ8YGWE5c4].mp4", false, ~U[2019-12-02 00:05:45Z]] 10:56:41.713 [debug] QUERY OK source="sources" db=0.1ms idle=132.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:41.713 [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:56:41.714 [debug] QUERY OK source="media_items" db=0.1ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10149] 10:56:41.714 [debug] Current batch of media processed. Will check again in 1000ms 10:56:42.715 [debug] Current batch of media processed. Will check again in 1000ms 10:56:43.716 [debug] Current batch of media processed. Will check again in 1000ms 10:56:44.717 [debug] Current batch of media processed. Will check again in 1000ms 10:56:45.718 [debug] Current batch of media processed. Will check again in 1000ms 10:56:46.719 [debug] Current batch of media processed. Will check again in 1000ms 10:56:47.720 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest, this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how we made it happen!\n\nOn this episode we finished the basic camper shell, fiberglassed and bondoed all the holes and seams, cut out the windows, doors, and ceiling vents, I go the the hospital after an accident, and the truck goes to Oakley Off-Road to get lifted and the single rear wheel conversion, and we install 41\" Continental tires on the beast!\n\nTime Elapsed 11/19/2018 - 1/9/2019 59 days from start \nApproximate Budget: $25,328 of $30,000 (Including Truck $10,000)\n\nThis series encompasses all things #vanlife, overlanding, camper, off-road, expedition vehicle, lifestyle, adventure and more!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "duration" => 821, "filename" => "/downloads/Vanlife/2019-12-08 MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle!/MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle! [rAaGWtS3Gh8].mp4", "id" => "rAaGWtS3Gh8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rAaGWtS3Gh8", "playlist_index" => 37, "timestamp" => 1575835377, "title" => "MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle!", "upload_date" => "20191208"} 10:56:47.721 [debug] QUERY OK source="sources" db=0.1ms idle=166.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:56:47.721 [debug] QUERY OK source="sources" db=0.1ms idle=166.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:47.721 [debug] QUERY OK source="media_items" db=0.4ms idle=166.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2019-12-08 20:02:57Z], 10] 10:56:47.723 [debug] QUERY OK source="media_items" db=0.9ms idle=167.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest, this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how we made it happen!\n\nOn this episode we finished the basic camper shell, fiberglassed and bondoed all the holes and seams, cut out the windows, doors, and ceiling vents, I go the the hospital after an accident, and the truck goes to Oakley Off-Road to get lifted and the single rear wheel conversion, and we install 41\" Continental tires on the beast!\n\nTime Elapsed 11/19/2018 - 1/9/2019 59 days from start \nApproximate Budget: $25,328 of $30,000 (Including Truck $10,000)\n\nThis series encompasses all things #vanlife, overlanding, camper, off-road, expedition vehicle, lifestyle, adventure and more!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle!", "88772621-74bf-4a5b-9671-d4dfe26c53aa", 10, [], 821, false, "rAaGWtS3Gh8", "https://www.youtube.com/watch?v=rAaGWtS3Gh8", 37, "/downloads/Vanlife/2019-12-08 MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle!/MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle! [rAaGWtS3Gh8].mp4", false, false, false, 1, ~U[2019-12-08 20:02:57Z], ~U[2026-07-11 14:56:47Z], ~U[2026-07-11 14:56:47Z], "Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest, this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how we made it happen!\n\nOn this episode we finished the basic camper shell, fiberglassed and bondoed all the holes and seams, cut out the windows, doors, and ceiling vents, I go the the hospital after an accident, and the truck goes to Oakley Off-Road to get lifted and the single rear wheel conversion, and we install 41\" Continental tires on the beast!\n\nTime Elapsed 11/19/2018 - 1/9/2019 59 days from start \nApproximate Budget: $25,328 of $30,000 (Including Truck $10,000)\n\nThis series encompasses all things #vanlife, overlanding, camper, off-road, expedition vehicle, lifestyle, adventure and more!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle!", 10, 821, false, "rAaGWtS3Gh8", "https://www.youtube.com/watch?v=rAaGWtS3Gh8", "/downloads/Vanlife/2019-12-08 MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle!/MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle! [rAaGWtS3Gh8].mp4", false, ~U[2019-12-08 20:02:57Z]] 10:56:47.723 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:47.723 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:56:47.724 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10151] 10:56:47.724 [debug] Current batch of media processed. Will check again in 1000ms 10:56:48.725 [debug] Current batch of media processed. Will check again in 1000ms 10:56:49.726 [debug] Current batch of media processed. Will check again in 1000ms 10:56:50.727 [debug] Current batch of media processed. Will check again in 1000ms 10:56:51.728 [debug] Current batch of media processed. Will check again in 1000ms 10:56:52.730 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest, this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how we made it happen!\n\nOn this episode we finished the box, created Shou Sugi Ban out of pine tongue and groove, we visited Vorsheer who fabricated our water tanks, we installed wood firs for the ceiling for the Shou Sugi Ban, we insulated and wired for lights, we realized me made a big design error, my father came back out to help and we dove into some personal history, we fabricated our mounting knuckles for the truck and camper, we built our back cabinet, and the subfloor goes in! So much in this episode! Looking forward to mounting the camper to the truck in the next episode!\n\nTime Elapsed 1/9/2019 - 2/9/2019 90 day from start\nApproximate Budget: $25,900 of $30,000 (Including Truck $10,000\n\nBuilding this overlander from the ground up has proven to be far more difficult than I expected and taken a lot more time, but that's DIY for you.\n\nWe'll have 66 gallons of fresh water and 22 of grey and a cassette toilet. Check out https://www.vorsheershop.com/ for more info! \n\nThis series encompasses all things #vanlife, overlanding, camper, off-road, expedition vehicle, lifestyle, adventure, DIY and more!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "duration" => 1042, "filename" => "/downloads/Vanlife/2019-12-16 The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle!/The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle! [huKSfR3eQTE].mp4", "id" => "huKSfR3eQTE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=huKSfR3eQTE", "playlist_index" => 38, "timestamp" => 1576537298, "title" => "The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle!", "upload_date" => "20191216"} 10:56:52.730 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1175.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:56:52.731 [debug] QUERY OK source="sources" db=0.1ms idle=1176.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:52.731 [debug] QUERY OK source="media_items" db=0.4ms idle=1176.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2019-12-16 23:01:38Z], 10] 10:56:52.736 [debug] QUERY OK source="media_items" db=4.0ms idle=1138.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest, this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how we made it happen!\n\nOn this episode we finished the box, created Shou Sugi Ban out of pine tongue and groove, we visited Vorsheer who fabricated our water tanks, we installed wood firs for the ceiling for the Shou Sugi Ban, we insulated and wired for lights, we realized me made a big design error, my father came back out to help and we dove into some personal history, we fabricated our mounting knuckles for the truck and camper, we built our back cabinet, and the subfloor goes in! So much in this episode! Looking forward to mounting the camper to the truck in the next episode!\n\nTime Elapsed 1/9/2019 - 2/9/2019 90 day from start\nApproximate Budget: $25,900 of $30,000 (Including Truck $10,000\n\nBuilding this overlander from the ground up has proven to be far more difficult than I expected and taken a lot more time, but that's DIY for you.\n\nWe'll have 66 gallons of fresh water and 22 of grey and a cassette toilet. Check out https://www.vorsheershop.com/ for more info! \n\nThis series encompasses all things #vanlife, overlanding, camper, off-road, expedition vehicle, lifestyle, adventure, DIY and more!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle!", "c7d97de3-f4f9-489c-b6cc-97b30b5b8210", 10, [], 1042, false, "huKSfR3eQTE", "https://www.youtube.com/watch?v=huKSfR3eQTE", 38, "/downloads/Vanlife/2019-12-16 The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle!/The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle! [huKSfR3eQTE].mp4", false, false, false, 1, ~U[2019-12-16 23:01:38Z], ~U[2026-07-11 14:56:52Z], ~U[2026-07-11 14:56:52Z], "Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest, this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how we made it happen!\n\nOn this episode we finished the box, created Shou Sugi Ban out of pine tongue and groove, we visited Vorsheer who fabricated our water tanks, we installed wood firs for the ceiling for the Shou Sugi Ban, we insulated and wired for lights, we realized me made a big design error, my father came back out to help and we dove into some personal history, we fabricated our mounting knuckles for the truck and camper, we built our back cabinet, and the subfloor goes in! So much in this episode! Looking forward to mounting the camper to the truck in the next episode!\n\nTime Elapsed 1/9/2019 - 2/9/2019 90 day from start\nApproximate Budget: $25,900 of $30,000 (Including Truck $10,000\n\nBuilding this overlander from the ground up has proven to be far more difficult than I expected and taken a lot more time, but that's DIY for you.\n\nWe'll have 66 gallons of fresh water and 22 of grey and a cassette toilet. Check out https://www.vorsheershop.com/ for more info! \n\nThis series encompasses all things #vanlife, overlanding, camper, off-road, expedition vehicle, lifestyle, adventure, DIY and more!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle!", 10, 1042, false, "huKSfR3eQTE", "https://www.youtube.com/watch?v=huKSfR3eQTE", "/downloads/Vanlife/2019-12-16 The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle!/The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle! [huKSfR3eQTE].mp4", false, ~U[2019-12-16 23:01:38Z]] 10:56:52.736 [debug] QUERY OK source="sources" db=0.1ms idle=142.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:52.736 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:56:52.737 [debug] QUERY OK source="media_items" db=0.2ms 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 [10152] 10:56:52.737 [debug] Current batch of media processed. Will check again in 1000ms 10:56:53.737 [debug] Current batch of media processed. Will check again in 1000ms 10:56:54.738 [debug] Current batch of media processed. Will check again in 1000ms 10:56:55.739 [debug] Current batch of media processed. Will check again in 1000ms 10:56:56.740 [debug] Current batch of media processed. Will check again in 1000ms 10:56:57.741 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT Cody & Christina 🚐 \nFollow them on Instagram: https://www.instagram.com/thedesertcruiser/?hl=en\nTheir Website: https://www.thedesertcruisers.com\nSubscribe on YouTube: https://www.youtube.com/@the.desertcruiser\n\nCody and Christina have spent the last 2 years designing and building their dream tiny home on wheels / expedition truck camper. With Earth Roamers or similar Unimog builds costing anywhere from 600k - 1Million dollars, the two of them set out to build a comparable vehicle for a fraction of the cost. \n\nWatch this complete in depth full tour of their newest rig that was completed fall of 2023! \n\nThe truck started out as a plain old Ford F550 4x4 Chassis Truck with Dual Rear Wheels and was converted into an off roading overland machine with huge 42\" Super Single Wheels and Tires! \n\nThis rig has everything from a massive BattleBorn Batteries / Victron Components 24V electrical system, 1,310w Solar Array, Nomadic Cooling Roof Mounted 12V AC, Front Runner Outfitters Roof Rack, Hydronic Heating System, massive Stainless Steel HOT Shower, Custom Cabinets and more! \n\nThanks to our BUILD PARTNERS, some of the links below are affiliate links ***\n\nBattleborn Batteries: https://battlebornbatteries.com/?afmc=a9&utm_campaign=a9&utm_source=leaddyno&utm_medium=affiliate\n\nExplorist.life: https://explorist.life/\n\nFront Runner Outfitters: https://www.frontrunneroutfitters.com/en/us/\n\nTern Overland: https://www.ternoverland.com/desert-cruiser\n\nNomadic Cooling: https://www.nomadiccooling.com/\n\nBullet Liner: https://www.bulletliner.com/\n\nIceco: https://amzn.to/4fBNVv7\n\nHavelock Wool: https://havelockwool.com/\n\nFurrion: https://furrion.com/collections/ovens?srsltid=AfmBOop7eirx9GdoW0Ph5UIJ7xqie_2AgTCc9z0mwDZx7PxHwKKykS2Q\n\nBrondell: https://www.brondell.com/?gad_source=1&gbraid=0AAAAADvLv8i2cus-lgwlrpbLMa6ZpV5Hb&gclid=CjwKCAiAxKy5BhBbEiwAYiW--yuce_r9H-QWKoRkaBiily_7Fi_CApgh_0P1O3hS-u4cGXbJV0d7kxoCb9oQAvD_BwE\n\nAqua Hot: https://www.aquahot.com/?utm_campaign=527_paid+search+_awareness_aquahot_&utm_medium=paid_search&utm_source=google&utm_content=airxcel-googlepaidsearch-aquahot&gad_source=1&gbraid=0AAAAAqQJSLSlzSirP4Vx3-m2tzmctBB-F&gclid=CjwKCAiAxKy5BhBbEiwAYiW--z6J3Eenn7egq_97UdrUev8bZKmJeuu3NH3iJzGzlSuj07lGxrQdcxoCeysQAvD_BwE\n\nClear Source: https://www.clearsourcerv.com/collections/clearsource-rv-water-filter-systems?srsltid=AfmBOoprLnnOLaDgZ3hp3ZbyhRTtbOz5RTMeNL-Ze_baStbSMlrsSGqF\n\nRecPro: https://recpro.com/?utm_source=google&utm_medium=cpc&utm_campaign=LPTMGeneral&utm_content=search&utm_term=recpro&campaignid=1816720315&adgroupid=68671584159&keyword=recpro&gad_source=1&gbraid=0AAAAADkYSqY68I34IPHz1TUGisDhTWMu4&gclid=CjwKCAiAxKy5BhBbEiwAYiW--5wcra8K-x6icfjVGyEeBJNeEQdtqk8bnDTUdgDwt0HcaG-nWRdBiRoCPTEQAvD_BwE\n\nTorklift: https://www.torklift.com/\n\nCuddy: https://compocloset.com/collections/composting-toilets?\ngad_source=1&gbraid=0AAAAADnpk1TPl491yW3X8qxhma-upHOwm&gclid=CjwKCAiAxKy5BhBbEiwAYiW--3wrIJ12NPSb7EaZE4LI8wHbwJVmsXjAfis7DpF5L_GYCivWVvvcShoCPdIQAvD_BwE\n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "duration" => 1054, "filename" => "/downloads/Vanlife/2024-11-15 DIY Box Truck turned Overland 4x4 Truck CAMPER ⧸ FULL TOUR/DIY Box Truck turned Overland 4x4 Truck CAMPER ⧸ FULL TOUR [LYPuIxnLem0].mp4", "id" => "LYPuIxnLem0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LYPuIxnLem0", "playlist_index" => 39, "timestamp" => 1731679219, "title" => "DIY Box Truck turned Overland 4x4 Truck CAMPER / FULL TOUR", "upload_date" => "20241115"} 10:56:57.742 [debug] QUERY OK source="sources" db=0.1ms idle=1187.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:56:57.742 [debug] QUERY OK source="sources" db=0.1ms idle=1187.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:57.743 [debug] QUERY OK source="media_items" db=0.4ms idle=1187.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-15 14:00:19Z], 10] 10:56:57.745 [debug] QUERY OK source="media_items" db=1.4ms idle=1144.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT Cody & Christina 🚐 \nFollow them on Instagram: https://www.instagram.com/thedesertcruiser/?hl=en\nTheir Website: https://www.thedesertcruisers.com\nSubscribe on YouTube: https://www.youtube.com/@the.desertcruiser\n\nCody and Christina have spent the last 2 years designing and building their dream tiny home on wheels / expedition truck camper. With Earth Roamers or similar Unimog builds costing anywhere from 600k - 1Million dollars, the two of them set out to build a comparable vehicle for a fraction of the cost. \n\nWatch this complete in depth full tour of their newest rig that was completed fall of 2023! \n\nThe truck started out as a plain old Ford F550 4x4 Chassis Truck with Dual Rear Wheels and was converted into an off roading overland machine with huge 42\" Super Single Wheels and Tires! \n\nThis rig has everything from a massive BattleBorn Batteries / Victron Components 24V electrical system, 1,310w Solar Array, Nomadic Cooling Roof Mounted 12V AC, Front Runner Outfitters Roof Rack, Hydronic Heating System, massive Stainless Steel HOT Shower, Custom Cabinets and more! \n\nThanks to our BUILD PARTNERS, some of the links below are affiliate links ***\n\nBattleborn Batteries: https://battlebornbatteries.com/?afmc=a9&utm_campaign=a9&utm_source=leaddyno&utm_medium=affiliate\n\nExplorist.life: https://explorist.life/\n\nFront Runner Outfitters: https://www.frontrunneroutfitters.com/en/us/\n\nTern Overland: https://www.ternoverland.com/desert-cruiser\n\nNomadic Cooling: https://www.nomadiccooling.com/\n\nBullet Liner: https://www.bulletliner.com/\n\nIceco: https://amzn.to/4fBNVv7\n\nHavelock Wool: https://havelockwool.com/\n\nFurrion: https://furrion.com/collections/ovens?srsltid=AfmBOop7eirx9GdoW0Ph5UIJ7xqie_2AgTCc9z0mwDZx7PxHwKKykS2Q\n\nBrondell: https://www.brondell.com/?gad_source=1&gbraid=0AAAAADvLv8i2cus-lgwlrpbLMa6ZpV5Hb&gclid=CjwKCAiAxKy5BhBbEiwAYiW--yuce_r9H-QWKoRkaBiily_7Fi_CApgh_0P1O3hS-u4cGXbJV0d7kxoCb9oQAvD_BwE\n\nAqua Hot: https://www.aquahot.com/?utm_campaign=527_paid+search+_awareness_aquahot_&utm_medium=paid_search&utm_source=google&utm_content=airxcel-googlepaidsearch-aquahot&gad_source=1&gbraid=0AAAAAqQJSLSlzSirP4Vx3-m2tzmctBB-F&gclid=CjwKCAiAxKy5BhBbEiwAYiW--z6J3Eenn7egq_97UdrUev8bZKmJeuu3NH3iJzGzlSuj07lGxrQdcxoCeysQAvD_BwE\n\nClear Source: https://www.clearsourcerv.com/collections/clearsource-rv-water-filter-systems?srsltid=AfmBOoprLnnOLaDgZ3hp3ZbyhRTtbOz5RTMeNL-Ze_baStbSMlrsSGqF\n\nRecPro: https://recpro.com/?utm_source=google&utm_medium=cpc&utm_campaign=LPTMGeneral&utm_content=search&utm_term=recpro&campaignid=1816720315&adgroupid=68671584159&keyword=recpro&gad_source=1&gbraid=0AAAAADkYSqY68I34IPHz1TUGisDhTWMu4&gclid=CjwKCAiAxKy5BhBbEiwAYiW--5wcra8K-x6icfjVGyEeBJNeEQdtqk8bnDTUdgDwt0HcaG-nWRdBiRoCPTEQAvD_BwE\n\nTorklift: https://www.torklift.com/\n\nCuddy: https://compocloset.com/collections/composting-toilets?\ngad_source=1&gbraid=0AAAAADnpk1TPl491yW3X8qxhma-upHOwm&gclid=CjwKCAiAxKy5BhBbEiwAYiW--3wrIJ12NPSb7EaZE4LI8wHbwJVmsXjAfis7DpF5L_GYCivWVvvcShoCPdIQAvD_BwE\n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "DIY Box Truck turned Overland 4x4 Truck CAMPER / FULL TOUR", "84437a53-4231-4df5-bc40-da9f8f4961a9", 10, [], 1054, false, "LYPuIxnLem0", "https://www.youtube.com/watch?v=LYPuIxnLem0", 39, "/downloads/Vanlife/2024-11-15 DIY Box Truck turned Overland 4x4 Truck CAMPER ⧸ FULL TOUR/DIY Box Truck turned Overland 4x4 Truck CAMPER ⧸ FULL TOUR [LYPuIxnLem0].mp4", false, false, false, 1, ~U[2024-11-15 14:00:19Z], ~U[2026-07-11 14:56:57Z], ~U[2026-07-11 14:56:57Z], "🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT Cody & Christina 🚐 \nFollow them on Instagram: https://www.instagram.com/thedesertcruiser/?hl=en\nTheir Website: https://www.thedesertcruisers.com\nSubscribe on YouTube: https://www.youtube.com/@the.desertcruiser\n\nCody and Christina have spent the last 2 years designing and building their dream tiny home on wheels / expedition truck camper. With Earth Roamers or similar Unimog builds costing anywhere from 600k - 1Million dollars, the two of them set out to build a comparable vehicle for a fraction of the cost. \n\nWatch this complete in depth full tour of their newest rig that was completed fall of 2023! \n\nThe truck started out as a plain old Ford F550 4x4 Chassis Truck with Dual Rear Wheels and was converted into an off roading overland machine with huge 42\" Super Single Wheels and Tires! \n\nThis rig has everything from a massive BattleBorn Batteries / Victron Components 24V electrical system, 1,310w Solar Array, Nomadic Cooling Roof Mounted 12V AC, Front Runner Outfitters Roof Rack, Hydronic Heating System, massive Stainless Steel HOT Shower, Custom Cabinets and more! \n\nThanks to our BUILD PARTNERS, some of the links below are affiliate links ***\n\nBattleborn Batteries: https://battlebornbatteries.com/?afmc=a9&utm_campaign=a9&utm_source=leaddyno&utm_medium=affiliate\n\nExplorist.life: https://explorist.life/\n\nFront Runner Outfitters: https://www.frontrunneroutfitters.com/en/us/\n\nTern Overland: https://www.ternoverland.com/desert-cruiser\n\nNomadic Cooling: https://www.nomadiccooling.com/\n\nBullet Liner: https://www.bulletliner.com/\n\nIceco: https://amzn.to/4fBNVv7\n\nHavelock Wool: https://havelockwool.com/\n\nFurrion: https://furrion.com/collections/ovens?srsltid=AfmBOop7eirx9GdoW0Ph5UIJ7xqie_2AgTCc9z0mwDZx7PxHwKKykS2Q\n\nBrondell: https://www.brondell.com/?gad_source=1&gbraid=0AAAAADvLv8i2cus-lgwlrpbLMa6ZpV5Hb&gclid=CjwKCAiAxKy5BhBbEiwAYiW--yuce_r9H-QWKoRkaBiily_7Fi_CApgh_0P1O3hS-u4cGXbJV0d7kxoCb9oQAvD_BwE\n\nAqua Hot: https://www.aquahot.com/?utm_campaign=527_paid+search+_awareness_aquahot_&utm_medium=paid_search&utm_source=google&utm_content=airxcel-googlepaidsearch-aquahot&gad_source=1&gbraid=0AAAAAqQJSLSlzSirP4Vx3-m2tzmctBB-F&gclid=CjwKCAiAxKy5BhBbEiwAYiW--z6J3Eenn7egq_97UdrUev8bZKmJeuu3NH3iJzGzlSuj07lGxrQdcxoCeysQAvD_BwE\n\nClear Source: https://www.clearsourcerv.com/collections/clearsource-rv-water-filter-systems?srsltid=AfmBOoprLnnOLaDgZ3hp3ZbyhRTtbOz5RTMeNL-Ze_baStbSMlrsSGqF\n\nRecPro: https://recpro.com/?utm_source=google&utm_medium=cpc&utm_campaign=LPTMGeneral&utm_content=search&utm_term=recpro&campaignid=1816720315&adgroupid=68671584159&keyword=recpro&gad_source=1&gbraid=0AAAAADkYSqY68I34IPHz1TUGisDhTWMu4&gclid=CjwKCAiAxKy5BhBbEiwAYiW--5wcra8K-x6icfjVGyEeBJNeEQdtqk8bnDTUdgDwt0HcaG-nWRdBiRoCPTEQAvD_BwE\n\nTorklift: https://www.torklift.com/\n\nCuddy: https://compocloset.com/collections/composting-toilets?\ngad_source=1&gbraid=0AAAAADnpk1TPl491yW3X8qxhma-upHOwm&gclid=CjwKCAiAxKy5BhBbEiwAYiW--3wrIJ12NPSb7EaZE4LI8wHbwJVmsXjAfis7DpF5L_GYCivWVvvcShoCPdIQAvD_BwE\n\nCheck out my latest film on how to convert a van: https://youtu.b (truncated) 10:56:57.745 [debug] QUERY OK source="sources" db=0.1ms idle=145.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:56:57.745 [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:56:57.745 [debug] QUERY OK source="media_items" db=0.1ms idle=3.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10154] 10:56:57.746 [debug] Current batch of media processed. Will check again in 1000ms 10:56:58.746 [debug] Current batch of media processed. Will check again in 1000ms 10:56:59.747 [debug] Current batch of media processed. Will check again in 1000ms 10:57:00.201 [info] {"source":"oban","duration":282,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:57:00.470 [info] {"source":"oban","duration":833,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:57:00.748 [debug] Current batch of media processed. Will check again in 1000ms 10:57:01.749 [debug] Current batch of media processed. Will check again in 1000ms 10:57:02.751 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I Built My Dream Camper – Full Build Step by Step 🚐✨\n\nAfter months of planning, hard work, and dedication, I finally built my dream camper van! In this full van build timelapse, I take you through the entire step-by-step conversion process—from an empty panel van to a fully functional DIY camper ready for van life adventures.\n\nWhat You’ll See in This Van Build:\n\n✅ Insulation & Soundproofing\n✅ Flooring, Walls & Ceiling Installation\n✅ DIY Kitchen & Storage Build\n✅ Solar Power & Electrical Setup\n✅ Water & Plumbing System\n✅ Bed, Seating & Interior Design\n✅ Final Tour & Full Transformation\n\nIf you’re thinking about building your own off-grid camper van, this video is packed with ideas, tips, tricks, and inspiration to help you on your journey. Whether you’re a weekend adventurer or planning full-time van life, this van conversion has everything you need!\n\n🔔 Subscribe for more van life content and travel adventures!\n👍 Like & Comment if you enjoyed this build! Let me know what your dream camper would look like!\n\n🍿 Subscribe - https://bit.ly/3hBKJSj\n📸 INSTAGRAM - \u00A0https://www.instagram.com/jakeadv\n🌍 WEBSITE - https://jakeadv.com\n\nProducts Mentioned \n\nCheck out Fogstar Drift Batteries - https://www.fogstar-drift.co.uk/?ref=awnpuowi\nInsulation - www.dodomat.com Use code JAKEADV10 for 10% discount\n\nTools Every Van Builder Should Have\n\nCordless Circular Saw - https://amzn.to/3Ctucjv\nDrill - https://amzn.to/3ElkTm4\nJig Saw - https://amzn.to/3CzBYbz\nKreg Circular Saw Track - https://amzn.to/432pW5t\nKreg Concealed Hinge Jig - https://amzn.to/4jKyvrc\nTrend Pocket Hole - https://amzn.to/3WNGt9a\nHeavy Duty Drawer Runners for Bed - https://amzn.to/3DXagGg\n\nWHO AM I? \n\nIf we haven't met before... Hi, I'm Jake 👋 and I went backpacking in 2016 to Indonesia before spending a year in New Zealand and Australia. Afterwards I spent a couple of years teaching English online while travelling full time all over South East Asia. After that it was all about Europe and Turkey in a camper van with my previous partner, but we have since gone our separate ways and I am now back doing my favourite thing - Solo Travel. Join me on my journey as I continue to find new adventures and experiences to make the most out of this little thing we call life. \n\nP.S. Some of the links in this description are affiliate links that I get a kickback from.\n\nIf you’ve read this far into the description then you are a very focussed person and should comment something!\n\nTimestamps:\n00:00 - Prepping The Van\n00:28 - Sound Proofing\n01:16 - Floor Insulation02:00 - General Insulation 04:59 - Cutting the Windows\n07:38 - Installing Roof Fan/Vent\n09:11 - Solar Panels \n09:55 - Finishing the Insulation and Wall Battening\n10:35 - Walls\n14:31 - Flooring\n15:17 - Building the Units, Kitchen and Upper Cabinets\n18:56 - Sofa/Bed Design\n20:53 - Water Tank\n21:47 - Finishing Units, Doors and Drawers\n24:16 - Ceiling Slats \n25:04 - Finishing Touches \n26:18 - Diesel Heater\n26:35 - Kitchen Counter and Plumbing\n27:25 - Swivel Seat\n28:03 - Toilet \n28:31 - End\n\n\n#VanBuild #DIYCamper #VanLife #VanConversion #CamperVan #TinyHomeOnWheels 🚐", "duration" => 1747, "filename" => "/downloads/Vanlife/2025-02-09 I Built My Dream Camper Van | Full Build Step by Step/I Built My Dream Camper Van | Full Build Step by Step [BQedC7SeWaQ].mkv", "id" => "BQedC7SeWaQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BQedC7SeWaQ", "playlist_index" => 40, "timestamp" => 1739116809, "title" => "I Built My Dream Camper Van | Full Build Step by Step", "upload_date" => "20250209"} 10:57:02.751 [debug] QUERY OK source="sources" db=0.1ms idle=1196.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:57:02.751 [debug] QUERY OK source="sources" db=0.0ms idle=1197.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:02.752 [debug] QUERY OK source="media_items" db=0.3ms idle=1197.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-09 16:00:09Z], 10] 10:57:02.754 [debug] QUERY OK source="media_items" db=1.3ms idle=1147.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I Built My Dream Camper – Full Build Step by Step 🚐✨\n\nAfter months of planning, hard work, and dedication, I finally built my dream camper van! In this full van build timelapse, I take you through the entire step-by-step conversion process—from an empty panel van to a fully functional DIY camper ready for van life adventures.\n\nWhat You’ll See in This Van Build:\n\n✅ Insulation & Soundproofing\n✅ Flooring, Walls & Ceiling Installation\n✅ DIY Kitchen & Storage Build\n✅ Solar Power & Electrical Setup\n✅ Water & Plumbing System\n✅ Bed, Seating & Interior Design\n✅ Final Tour & Full Transformation\n\nIf you’re thinking about building your own off-grid camper van, this video is packed with ideas, tips, tricks, and inspiration to help you on your journey. Whether you’re a weekend adventurer or planning full-time van life, this van conversion has everything you need!\n\n🔔 Subscribe for more van life content and travel adventures!\n👍 Like & Comment if you enjoyed this build! Let me know what your dream camper would look like!\n\n🍿 Subscribe - https://bit.ly/3hBKJSj\n📸 INSTAGRAM - \u00A0https://www.instagram.com/jakeadv\n🌍 WEBSITE - https://jakeadv.com\n\nProducts Mentioned \n\nCheck out Fogstar Drift Batteries - https://www.fogstar-drift.co.uk/?ref=awnpuowi\nInsulation - www.dodomat.com Use code JAKEADV10 for 10% discount\n\nTools Every Van Builder Should Have\n\nCordless Circular Saw - https://amzn.to/3Ctucjv\nDrill - https://amzn.to/3ElkTm4\nJig Saw - https://amzn.to/3CzBYbz\nKreg Circular Saw Track - https://amzn.to/432pW5t\nKreg Concealed Hinge Jig - https://amzn.to/4jKyvrc\nTrend Pocket Hole - https://amzn.to/3WNGt9a\nHeavy Duty Drawer Runners for Bed - https://amzn.to/3DXagGg\n\nWHO AM I? \n\nIf we haven't met before... Hi, I'm Jake 👋 and I went backpacking in 2016 to Indonesia before spending a year in New Zealand and Australia. Afterwards I spent a couple of years teaching English online while travelling full time all over South East Asia. After that it was all about Europe and Turkey in a camper van with my previous partner, but we have since gone our separate ways and I am now back doing my favourite thing - Solo Travel. Join me on my journey as I continue to find new adventures and experiences to make the most out of this little thing we call life. \n\nP.S. Some of the links in this description are affiliate links that I get a kickback from.\n\nIf you’ve read this far into the description then you are a very focussed person and should comment something!\n\nTimestamps:\n00:00 - Prepping The Van\n00:28 - Sound Proofing\n01:16 - Floor Insulation02:00 - General Insulation 04:59 - Cutting the Windows\n07:38 - Installing Roof Fan/Vent\n09:11 - Solar Panels \n09:55 - Finishing the Insulation and Wall Battening\n10:35 - Walls\n14:31 - Flooring\n15:17 - Building the Units, Kitchen and Upper Cabinets\n18:56 - Sofa/Bed Design\n20:53 - Water Tank\n21:47 - Finishing Units, Doors and Drawers\n24:16 - Ceiling Slats \n25:04 - Finishing Touches \n26:18 - Diesel Heater\n26:35 - Kitchen Counter and Plumbing\n27:25 - Swivel Seat\n28:03 - Toilet \n28:31 - End\n\n\n#VanBuild #DIYCamper #VanLife #VanConversion #CamperVan #TinyHomeOnWheels 🚐", "I Built My Dream Camper Van | Full Build Step by Step", "fbf25b13-52c5-493a-8470-4f21fdc93ea3", 10, [], 1747, false, "BQedC7SeWaQ", "https://www.youtube.com/watch?v=BQedC7SeWaQ", 40, "/downloads/Vanlife/2025-02-09 I Built My Dream Camper Van | Full Build Step by Step/I Built My Dream Camper Van | Full Build Step by Step [BQedC7SeWaQ].mkv", false, false, false, 1, ~U[2025-02-09 16:00:09Z], ~U[2026-07-11 14:57:02Z], ~U[2026-07-11 14:57:02Z], "I Built My Dream Camper – Full Build Step by Step 🚐✨\n\nAfter months of planning, hard work, and dedication, I finally built my dream camper van! In this full van build timelapse, I take you through the entire step-by-step conversion process—from an empty panel van to a fully functional DIY camper ready for van life adventures.\n\nWhat You’ll See in This Van Build:\n\n✅ Insulation & Soundproofing\n✅ Flooring, Walls & Ceiling Installation\n✅ DIY Kitchen & Storage Build\n✅ Solar Power & Electrical Setup\n✅ Water & Plumbing System\n✅ Bed, Seating & Interior Design\n✅ Final Tour & Full Transformation\n\nIf you’re thinking about building your own off-grid camper van, this video is packed with ideas, tips, tricks, and inspiration to help you on your journey. Whether you’re a weekend adventurer or planning full-time van life, this van conversion has everything you need!\n\n🔔 Subscribe for more van life content and travel adventures!\n👍 Like & Comment if you enjoyed this build! Let me know what your dream camper would look like!\n\n🍿 Subscribe - https://bit.ly/3hBKJSj\n📸 INSTAGRAM - \u00A0https://www.instagram.com/jakeadv\n🌍 WEBSITE - https://jakeadv.com\n\nProducts Mentioned \n\nCheck out Fogstar Drift Batteries - https://www.fogstar-drift.co.uk/?ref=awnpuowi\nInsulation - www.dodomat.com Use code JAKEADV10 for 10% discount\n\nTools Every Van Builder Should Have\n\nCordless Circular Saw - https://amzn.to/3Ctucjv\nDrill - https://amzn.to/3ElkTm4\nJig Saw - https://amzn.to/3CzBYbz\nKreg Circular Saw Track - https://amzn.to/432pW5t\nKreg Concealed Hinge Jig - https://amzn.to/4jKyvrc\nTrend Pocket Hole - https://amzn.to/3WNGt9a\nHeavy Duty Drawer Runners for Bed - https://amzn.to/3DXagGg\n\nWHO AM I? \n\nIf we haven't met before... Hi, I'm Jake 👋 and I went backpacking in 2016 to Indonesia before spending a year in New Zealand and Australia. Afterwards I spent a couple of years teaching English online while travelling full time all over South East Asia. After that it was all about Europe and Turkey in a camper van with my previous partner, but we have since gone our separate ways and I am now back doing my favourite thing - Solo Travel. Join me on my journey as I continue to find new adventures and experiences to make the most out of this little thing we call life. \n\nP.S. Some of the links in this description are affiliate links that I get a kickback from.\n\nIf you’ve read this far into the description then you are a very focussed person and should comment something!\n\nTimestamps:\n00:00 - Prepping The Van\n00:28 - Sound Proofing\n01:16 - Floor Insulation02:00 - General Insulation 04:59 - Cutting the Windows\n07:38 - Installing Roof Fan/Vent\n09:11 - Solar Panels \n09:55 - Finishing the Insulation and Wall Battening\n10:35 - Walls\n14:31 - Flooring\n15:17 - Building the Units, Kitchen and Upper Cabinets\n18:56 - Sofa/Bed Design\n20:53 - Water Tank\n21:47 - Finishing Units, Doors and Drawers\n24:16 - Ceiling Slats \n25:04 - Finishing Touches \n26:18 - Diesel Heater\n26:35 - Kitchen Counter and Plumbing\n27:25 - Swivel Seat\n28:03 - Toilet \n28:31 - End\n\n\n#VanBuild #DIYCamper #VanLife #VanConversion #CamperVan #TinyHomeOnWheels 🚐", "I Built My Dream Camper Van | Full Build Step by Step", 10, 1747, false, "BQedC7SeWaQ", "https://www.youtube.com/watch?v=BQedC7SeWaQ", "/downloads/Vanlife/2025-02-09 I Built My Dream Camper Van | Full Build Step by Step/I Built My Dream Camper Van | Full Build Step by Step [BQedC7SeWaQ].mkv", false, ~U[2025-02-09 16:00:09Z]] 10:57:02.754 [debug] QUERY OK source="sources" db=0.1ms idle=147.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:02.754 [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:57:02.755 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10156] 10:57:02.755 [debug] Current batch of media processed. Will check again in 1000ms 10:57:03.755 [debug] Current batch of media processed. Will check again in 1000ms 10:57:04.756 [debug] Current batch of media processed. Will check again in 1000ms 10:57:05.757 [debug] Current batch of media processed. Will check again in 1000ms 10:57:06.758 [debug] Current batch of media processed. Will check again in 1000ms 10:57:07.759 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The EarthRoamer LTx is a culmination of over two decades of experience, drawing on insights from constructing over 425 overland vehicles since 1998. These vehicles, tested across the globe’s most challenging environments and in all weather conditions, have proven their durability and reliability through extensive use. This rich history of exploration and adventure informs the LTx’s design, ensuring it meets the highest standards of performance and comfort for off-grid living.\n\nJoin us for a walkthrough of our most advanced expedition vehicle yet.\nFrom the inside out, the LTx is built to conquer the wild in total comfort.\n-\nCheck out the EarthRoamer LTx on our website:\nhttps://earthroamer.com/new-lti/ltx-explore/\n-\nFind us here:\nhttps://www.earthroamer.com\nhttps://www.instagram.com/earthroamer\nhttps://www.facebook.com/EarthRoamer\nhttps://www.tiktok.com/@earthroamerxv\nhttps://x.com/EarthRoamer\n-\nTimestamps:\n00:00 Intro\n01:00 Start of Exterior Tour\n01:32 Front Bumper\n02:30 Wheels, Tires, & Suspension\n03:23 Drop Down Steps\n03:31 Carbon Fiber Shell\n04:27 Camper Entry Door\n05:02 External Power Outlet\n05:11 Diesel Exhaust Fluid\n05:27 Passthrough Storage Garage\n06:42 Rear Storage Box\n07:59 Rear Bumper\n08:16 Off-Grid Capabilities\n09:10 Diesel Tanks\n09:19 Cassette Toilet\n09:41 Roof Rack\n10:04 Starlink\n10:12 Walkable Solar Panels\n10:24 Ford F-550 Cab Interior\n15:08 Start of Interior Tour\n15:22 Rustic Walnut Finishes & EarthRoamer Customization\n16:04 Entry Area\n16:19 Coat Closet\n16:48 24 Volt Electrical System & Digital Control Panel\n18:47 Winterization \n19:15 Diesel Air/Water Heater\n19:50 Kitchen\n23:57 Rear Dinette & Entertainment Setup\n25:53 Wardrobe & Electrical Access\n26:08 Bathroom\n27:18 Bedroom\n28:06 Passthrough to Cab\n28:15 Outro", "duration" => 1711, "filename" => "/downloads/Vanlife/2025-07-17 EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour/EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour [b98nsd-_1EA].mkv", "id" => "b98nsd-_1EA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=b98nsd-_1EA", "playlist_index" => 41, "timestamp" => 1752784307, "title" => "EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour", "upload_date" => "20250717"} 10:57:07.759 [debug] QUERY OK source="sources" db=0.1ms idle=1205.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:57:07.760 [debug] QUERY OK source="sources" db=0.1ms idle=1205.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:07.760 [debug] QUERY OK source="media_items" db=0.4ms idle=1205.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 20:31:47Z], 10] 10:57:07.762 [debug] QUERY OK source="media_items" db=1.0ms idle=1149.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The EarthRoamer LTx is a culmination of over two decades of experience, drawing on insights from constructing over 425 overland vehicles since 1998. These vehicles, tested across the globe’s most challenging environments and in all weather conditions, have proven their durability and reliability through extensive use. This rich history of exploration and adventure informs the LTx’s design, ensuring it meets the highest standards of performance and comfort for off-grid living.\n\nJoin us for a walkthrough of our most advanced expedition vehicle yet.\nFrom the inside out, the LTx is built to conquer the wild in total comfort.\n-\nCheck out the EarthRoamer LTx on our website:\nhttps://earthroamer.com/new-lti/ltx-explore/\n-\nFind us here:\nhttps://www.earthroamer.com\nhttps://www.instagram.com/earthroamer\nhttps://www.facebook.com/EarthRoamer\nhttps://www.tiktok.com/@earthroamerxv\nhttps://x.com/EarthRoamer\n-\nTimestamps:\n00:00 Intro\n01:00 Start of Exterior Tour\n01:32 Front Bumper\n02:30 Wheels, Tires, & Suspension\n03:23 Drop Down Steps\n03:31 Carbon Fiber Shell\n04:27 Camper Entry Door\n05:02 External Power Outlet\n05:11 Diesel Exhaust Fluid\n05:27 Passthrough Storage Garage\n06:42 Rear Storage Box\n07:59 Rear Bumper\n08:16 Off-Grid Capabilities\n09:10 Diesel Tanks\n09:19 Cassette Toilet\n09:41 Roof Rack\n10:04 Starlink\n10:12 Walkable Solar Panels\n10:24 Ford F-550 Cab Interior\n15:08 Start of Interior Tour\n15:22 Rustic Walnut Finishes & EarthRoamer Customization\n16:04 Entry Area\n16:19 Coat Closet\n16:48 24 Volt Electrical System & Digital Control Panel\n18:47 Winterization \n19:15 Diesel Air/Water Heater\n19:50 Kitchen\n23:57 Rear Dinette & Entertainment Setup\n25:53 Wardrobe & Electrical Access\n26:08 Bathroom\n27:18 Bedroom\n28:06 Passthrough to Cab\n28:15 Outro", "EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour", "a3615e7b-8b64-47c0-a400-a8082b168a1d", 10, [], 1711, false, "b98nsd-_1EA", "https://www.youtube.com/watch?v=b98nsd-_1EA", 41, "/downloads/Vanlife/2025-07-17 EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour/EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour [b98nsd-_1EA].mkv", false, false, false, 1, ~U[2025-07-17 20:31:47Z], ~U[2026-07-11 14:57:07Z], ~U[2026-07-11 14:57:07Z], "The EarthRoamer LTx is a culmination of over two decades of experience, drawing on insights from constructing over 425 overland vehicles since 1998. These vehicles, tested across the globe’s most challenging environments and in all weather conditions, have proven their durability and reliability through extensive use. This rich history of exploration and adventure informs the LTx’s design, ensuring it meets the highest standards of performance and comfort for off-grid living.\n\nJoin us for a walkthrough of our most advanced expedition vehicle yet.\nFrom the inside out, the LTx is built to conquer the wild in total comfort.\n-\nCheck out the EarthRoamer LTx on our website:\nhttps://earthroamer.com/new-lti/ltx-explore/\n-\nFind us here:\nhttps://www.earthroamer.com\nhttps://www.instagram.com/earthroamer\nhttps://www.facebook.com/EarthRoamer\nhttps://www.tiktok.com/@earthroamerxv\nhttps://x.com/EarthRoamer\n-\nTimestamps:\n00:00 Intro\n01:00 Start of Exterior Tour\n01:32 Front Bumper\n02:30 Wheels, Tires, & Suspension\n03:23 Drop Down Steps\n03:31 Carbon Fiber Shell\n04:27 Camper Entry Door\n05:02 External Power Outlet\n05:11 Diesel Exhaust Fluid\n05:27 Passthrough Storage Garage\n06:42 Rear Storage Box\n07:59 Rear Bumper\n08:16 Off-Grid Capabilities\n09:10 Diesel Tanks\n09:19 Cassette Toilet\n09:41 Roof Rack\n10:04 Starlink\n10:12 Walkable Solar Panels\n10:24 Ford F-550 Cab Interior\n15:08 Start of Interior Tour\n15:22 Rustic Walnut Finishes & EarthRoamer Customization\n16:04 Entry Area\n16:19 Coat Closet\n16:48 24 Volt Electrical System & Digital Control Panel\n18:47 Winterization \n19:15 Diesel Air/Water Heater\n19:50 Kitchen\n23:57 Rear Dinette & Entertainment Setup\n25:53 Wardrobe & Electrical Access\n26:08 Bathroom\n27:18 Bedroom\n28:06 Passthrough to Cab\n28:15 Outro", "EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour", 10, 1711, false, "b98nsd-_1EA", "https://www.youtube.com/watch?v=b98nsd-_1EA", "/downloads/Vanlife/2025-07-17 EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour/EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour [b98nsd-_1EA].mkv", false, ~U[2025-07-17 20:31:47Z]] 10:57:07.762 [debug] QUERY OK source="sources" db=0.2ms idle=149.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:07.763 [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] 10:57:07.763 [debug] QUERY OK source="media_items" db=0.2ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10158] 10:57:07.763 [debug] Current batch of media processed. Will check again in 1000ms 10:57:08.764 [debug] Current batch of media processed. Will check again in 1000ms 10:57:09.765 [debug] Current batch of media processed. Will check again in 1000ms 10:57:10.766 [debug] Current batch of media processed. Will check again in 1000ms 10:57:11.767 [debug] Current batch of media processed. Will check again in 1000ms 10:57:12.768 [debug] Current batch of media processed. Will check again in 1000ms 10:57:13.770 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Join this channel to get access to perks:\nhttps://www.youtube.com/channel/UCE7GmAYeBVgqDItdX2ihuHQ/join\n\nTake a tour of Abbe's stunning van conversion, which she built herself. In fact, this is her fourth van dwelling build out. She went all out for this one, incorporating mediterranean design, high end appliances, and an open layout. She even found a way to have a gorgeous wet bath inside the space. \n\nCONNECT WITH ABBE:\nhttps://www.instagram.com/a.bbe/?hl=en\nhttps://www.abbeminor.com/\n\nABBE IS SELLING THIS VAN IF YOU'RE INTERESTED CONTACT HER:\nhttps://www.abbeminor.com/contact\n\nABBE'S VAN BOOK: \nhttps://a.co/d/bcQCoMC\nFlipping Freedom: Your Ultimate Guide to Buy, Build, and Sell Vans\n\nGET YOUR OWN LUNA VAN BUILD:\nhttps://roguevans.com/pages/the-luna-van?utm_source=hoobe&utm_medium=social\n\n_____________________\n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nWANNA BE FEATURED ON THE CHANNEL?\nhttps://forms.gle/p5G8Q2cNHe5WN4Mm6\n\n_______________________\n\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \nhttps://kit.co/TinyHouseGiantJourney\n\n________________________\n\nMORE MORE MORE!\nWebsite: http://www.tinyhousegiantjourney.com\nFacebook: https://www.facebook.com/tinyhousegiantjourney\nInstagram: https://www.instagram.com/tinyhousegiantjourney/\nTik Tok: https://www.tiktok.com/@tinyhousegiantjourney\nTwitter: http://www.twitter.com/tinyhousegirl\nSnapchat: https://story.snapchat.com/p/e08b80cb-ec0c-44a2-9e4f-756f2f9c512c/1866148669855744?sender_web_id=28172bf6-43f5-4675-86c6-c74242ce2297&device_type=desktop&is_copy_url=true\n\nCREDITS\nPRODUCED & HOSTED BY: \nJenna Kausal\n\nVIDEOGRAPHY BY: \nDallen Detamore\nJennifer Gonzalez\n\nEDITOR:\nMarcia Trader\n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOGRAPHY/VIDEOGRAPHY PROVIDED BY OWNERS\n\n________________________\n\n0:00 On this week's episode...\n0:39 Welcome to Abbe's Luna Van\n0:52 Let's take a tour!\n1:00 Dining room/sitting area\n1:51 Separation from the van cab\n2:47 Jaw-dropping shower\n4:56 A full closet in a van?!\n5:17 Kitchen tour\n6:02 Utility controls & AC\n7:06 Design cohesion within the space\n7:51 Kitchen tour continued...\n9:27 Hidden storage\n10:46 Bedroom/sleeping area\n12:22 A unique ceiling design\n13:33 Bedroom tour continued...\n14:22 Exterior van tour\n14:50 Garage space and utilities\n15:45 Inspiration to build out sprinter vans\n16:26 Goals for the Luna Van build\n17:09 Total cost \n17:33 How going tiny has impacted Abbe's life\n18:08 What's next for Abbe?\n18:31 Until next time!\n\n#vanlife #vanconversion #solofemalevanlife", "duration" => 1132, "filename" => "/downloads/Vanlife/2025-03-28 Her stunning van conversion is the best I’ve ever seen!/Her stunning van conversion is the best I’ve ever seen! [G2KOnkCtgwQ].mp4", "id" => "G2KOnkCtgwQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=G2KOnkCtgwQ", "playlist_index" => 42, "timestamp" => 1743183049, "title" => "Her stunning van conversion is the best I’ve ever seen!", "upload_date" => "20250328"} 10:57:13.770 [debug] QUERY OK source="sources" db=0.1ms idle=215.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:57:13.771 [debug] QUERY OK source="sources" db=0.1ms idle=216.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:13.771 [debug] QUERY OK source="media_items" db=0.4ms idle=216.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-28 17:30:49Z], 10] 10:57:13.789 [debug] QUERY OK source="media_items" db=16.9ms idle=217.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join this channel to get access to perks:\nhttps://www.youtube.com/channel/UCE7GmAYeBVgqDItdX2ihuHQ/join\n\nTake a tour of Abbe's stunning van conversion, which she built herself. In fact, this is her fourth van dwelling build out. She went all out for this one, incorporating mediterranean design, high end appliances, and an open layout. She even found a way to have a gorgeous wet bath inside the space. \n\nCONNECT WITH ABBE:\nhttps://www.instagram.com/a.bbe/?hl=en\nhttps://www.abbeminor.com/\n\nABBE IS SELLING THIS VAN IF YOU'RE INTERESTED CONTACT HER:\nhttps://www.abbeminor.com/contact\n\nABBE'S VAN BOOK: \nhttps://a.co/d/bcQCoMC\nFlipping Freedom: Your Ultimate Guide to Buy, Build, and Sell Vans\n\nGET YOUR OWN LUNA VAN BUILD:\nhttps://roguevans.com/pages/the-luna-van?utm_source=hoobe&utm_medium=social\n\n_____________________\n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nWANNA BE FEATURED ON THE CHANNEL?\nhttps://forms.gle/p5G8Q2cNHe5WN4Mm6\n\n_______________________\n\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \nhttps://kit.co/TinyHouseGiantJourney\n\n________________________\n\nMORE MORE MORE!\nWebsite: http://www.tinyhousegiantjourney.com\nFacebook: https://www.facebook.com/tinyhousegiantjourney\nInstagram: https://www.instagram.com/tinyhousegiantjourney/\nTik Tok: https://www.tiktok.com/@tinyhousegiantjourney\nTwitter: http://www.twitter.com/tinyhousegirl\nSnapchat: https://story.snapchat.com/p/e08b80cb-ec0c-44a2-9e4f-756f2f9c512c/1866148669855744?sender_web_id=28172bf6-43f5-4675-86c6-c74242ce2297&device_type=desktop&is_copy_url=true\n\nCREDITS\nPRODUCED & HOSTED BY: \nJenna Kausal\n\nVIDEOGRAPHY BY: \nDallen Detamore\nJennifer Gonzalez\n\nEDITOR:\nMarcia Trader\n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOGRAPHY/VIDEOGRAPHY PROVIDED BY OWNERS\n\n________________________\n\n0:00 On this week's episode...\n0:39 Welcome to Abbe's Luna Van\n0:52 Let's take a tour!\n1:00 Dining room/sitting area\n1:51 Separation from the van cab\n2:47 Jaw-dropping shower\n4:56 A full closet in a van?!\n5:17 Kitchen tour\n6:02 Utility controls & AC\n7:06 Design cohesion within the space\n7:51 Kitchen tour continued...\n9:27 Hidden storage\n10:46 Bedroom/sleeping area\n12:22 A unique ceiling design\n13:33 Bedroom tour continued...\n14:22 Exterior van tour\n14:50 Garage space and utilities\n15:45 Inspiration to build out sprinter vans\n16:26 Goals for the Luna Van build\n17:09 Total cost \n17:33 How going tiny has impacted Abbe's life\n18:08 What's next for Abbe?\n18:31 Until next time!\n\n#vanlife #vanconversion #solofemalevanlife", "Her stunning van conversion is the best I’ve ever seen!", "1bc5f1cd-2fc0-4aae-b0de-53662257adc6", 10, [], 1132, false, "G2KOnkCtgwQ", "https://www.youtube.com/watch?v=G2KOnkCtgwQ", 42, "/downloads/Vanlife/2025-03-28 Her stunning van conversion is the best I’ve ever seen!/Her stunning van conversion is the best I’ve ever seen! [G2KOnkCtgwQ].mp4", false, false, false, 1, ~U[2025-03-28 17:30:49Z], ~U[2026-07-11 14:57:13Z], ~U[2026-07-11 14:57:13Z], "Join this channel to get access to perks:\nhttps://www.youtube.com/channel/UCE7GmAYeBVgqDItdX2ihuHQ/join\n\nTake a tour of Abbe's stunning van conversion, which she built herself. In fact, this is her fourth van dwelling build out. She went all out for this one, incorporating mediterranean design, high end appliances, and an open layout. She even found a way to have a gorgeous wet bath inside the space. \n\nCONNECT WITH ABBE:\nhttps://www.instagram.com/a.bbe/?hl=en\nhttps://www.abbeminor.com/\n\nABBE IS SELLING THIS VAN IF YOU'RE INTERESTED CONTACT HER:\nhttps://www.abbeminor.com/contact\n\nABBE'S VAN BOOK: \nhttps://a.co/d/bcQCoMC\nFlipping Freedom: Your Ultimate Guide to Buy, Build, and Sell Vans\n\nGET YOUR OWN LUNA VAN BUILD:\nhttps://roguevans.com/pages/the-luna-van?utm_source=hoobe&utm_medium=social\n\n_____________________\n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nWANNA BE FEATURED ON THE CHANNEL?\nhttps://forms.gle/p5G8Q2cNHe5WN4Mm6\n\n_______________________\n\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \nhttps://kit.co/TinyHouseGiantJourney\n\n________________________\n\nMORE MORE MORE!\nWebsite: http://www.tinyhousegiantjourney.com\nFacebook: https://www.facebook.com/tinyhousegiantjourney\nInstagram: https://www.instagram.com/tinyhousegiantjourney/\nTik Tok: https://www.tiktok.com/@tinyhousegiantjourney\nTwitter: http://www.twitter.com/tinyhousegirl\nSnapchat: https://story.snapchat.com/p/e08b80cb-ec0c-44a2-9e4f-756f2f9c512c/1866148669855744?sender_web_id=28172bf6-43f5-4675-86c6-c74242ce2297&device_type=desktop&is_copy_url=true\n\nCREDITS\nPRODUCED & HOSTED BY: \nJenna Kausal\n\nVIDEOGRAPHY BY: \nDallen Detamore\nJennifer Gonzalez\n\nEDITOR:\nMarcia Trader\n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOGRAPHY/VIDEOGRAPHY PROVIDED BY OWNERS\n\n________________________\n\n0:00 On this week's episode...\n0:39 Welcome to Abbe's Luna Van\n0:52 Let's take a tour!\n1:00 Dining room/sitting area\n1:51 Separation from the van cab\n2:47 Jaw-dropping shower\n4:56 A full closet in a van?!\n5:17 Kitchen tour\n6:02 Utility controls & AC\n7:06 Design cohesion within the space\n7:51 Kitchen tour continued...\n9:27 Hidden storage\n10:46 Bedroom/sleeping area\n12:22 A unique ceiling design\n13:33 Bedroom tour continued...\n14:22 Exterior van tour\n14:50 Garage space and utilities\n15:45 Inspiration to build out sprinter vans\n16:26 Goals for the Luna Van build\n17:09 Total cost \n17:33 How going tiny has impacted Abbe's life\n18:08 What's next for Abbe?\n18:31 Until next time!\n\n#vanlife #vanconversion #solofemalevanlife", "Her stunning van conversion is the best I’ve ever seen!", 10, 1132, false, "G2KOnkCtgwQ", "https://www.youtube.com/watch?v=G2KOnkCtgwQ", "/downloads/Vanlife/2025-03-28 Her stunning van conversion is the best I’ve ever seen!/Her stunning van conversion is the best I’ve ever seen! [G2KOnkCtgwQ].mp4", false, ~U[2025-03-28 17:30:49Z]] 10:57:13.789 [debug] QUERY OK source="sources" db=0.2ms idle=169.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:13.789 [debug] QUERY OK source="media_profiles" db=0.1ms idle=18.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:57:13.790 [debug] QUERY OK source="media_items" db=0.2ms idle=18.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10160] 10:57:13.790 [debug] Current batch of media processed. Will check again in 1000ms 10:57:14.790 [debug] Current batch of media processed. Will check again in 1000ms 10:57:15.791 [debug] Current batch of media processed. Will check again in 1000ms 10:57:16.792 [debug] Current batch of media processed. Will check again in 1000ms 10:57:17.793 [debug] Current batch of media processed. Will check again in 1000ms 10:57:18.795 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "RATING EVERY PART OF OUR SELF BUILD CAMPER VAN CONVERSION OUT OF 10 || WHAT WOULD WE CHANGE ABOUT OF FIRST VAN CONVERSION BUILD || REVIEWING OUR SELF BUILT VAN CONVERSION, WHAT WOULD WE DO DIFFERENT ||\n\nA camper van conversion can cost anywhere from £1,000 to £20,000—and no matter your budget, that’s a big investment. So in this video, I’m going to rate every part of our self-built VW Crafter camper van out of 10. I built this van from the ground up for my family of four, and we’ve just returned from a six-week Arctic adventure where we tested it in temperatures as low as -15°C. From layout and insulation to heating, electrics, storage, and all the clever little features—we're putting it all to the test. I’ll show you what worked, what didn’t, what I’d change, and what I’d definitely do again. Whether you’re planning your first van or looking to upgrade, I hope this gives you some useful insight. Let’s get into it! \n\nFollow us on Instagram @abucklifeofficial\n\nFirst Access to our NEW Mech! \nhttps://abucklife.myshopify.com/\n\nThank you so much for watching and we can't wait to share more of adventures with you.\nOur van is a VW Crafter Long Wheel Base LWB 4 Motion (4x4/AWD) Van. If you have any questions drop me a comment or dm me! \n\nHere is the full build playlist with a video for each part of the build: https://www.youtube.com/playlist?list=PLIqoHmTCdKe4-7V-pkNPZJ5-Y0W5500S0\n\nQuality Products we Use in our Self Build Camper Van: \n- Our AirFryer Oven https://amzn.to/42TDBtE\n- VANDERMOON MOONBOXES AND MOON ORGANISERS | We love all our VANDERMOON gear, from the moon boxes to the moon organisers our van would not be as functional and light weight without them, \nUse Code 'buck10' for 10% off your order! Check out Vandermoon here https://www.vandermoon.com/eng/en/logowanie?create_account=1&s=buck10\n(you do need to use the link for the discount to work!)\n- AUXBEAM LIGHTING | Use this code 'ABL15' to save 15% off your first order and the link https://www.shareasale.com/u.cfm?d=1262373&m=67515&u=4545378\n- HELINOX | camping furniture is so lightweight, easy to set up and durable. Little man loves his mini chair. Use this link https://tidd.ly/41M7tZF and code 'VN7GQVZ43XDB' for 10% OFF. \n- SOLO STOVE | is amazing for a safe camp fire and is from www.adventurevanlife.com. Use code 'abucklife' for discount site wide.\n- AUTOTERM DIESEL HEATER| We stay warm with a 4KW AUTOTERM Diesel Heater and Engine Pre Heater. Use code 'abucklife' for discount at www.autoterm.store\n- TRELINO TOILET| Our off grid travel would not be possible without our Trelino Toilet. Game Changer. \nClick the link https://tidd.ly/4gwZnsa and use the code 'abucklife' to receive a FREE accessories set when ordering a Trelino composting toilet.\n\nSome links in this description are affiliate links. When you buy through these links, I get a small commission at no extra cost to you. This really supports the channel and helps us to bring better content to you and we really appreciate the support. Thank you.\n\n0:00 Intro\n1:38 The Van - VW Crafter 4motion\n2:15 Head Room \n3:12 Layout\n4:09 Fabwox Rock and Roll Bed\n4:24 Insulation (dodomat)\n5:49 Vandermoon Moon Box Review\n6:28 Showeroom Design\n7:45 Trelino Composting Toilet Review\n9:21 Water Tank and Bobil Hybrid Hot Water System Review\n10:58 Electrical Victron System and Induction Hob\n13:34 Dometic Fridge Review\n15:31 Autoterm 4kw Diesel Heater Review\n16:33 Mattress\n17:04 Jackson Leisure Adventurer Windows Review\n17:49 Vandermoon Moon Organisers Review\n18:13 Storage\n19:01 MaxAir Fans Review\n19:30 Starlink Mini Review\n20:38 L Track and Wall Cladding", "duration" => 1291, "filename" => "/downloads/Vanlife/2025-06-08 Everything WRONG With Our Self Build Camper Van || Watch This Before You Start Yours!/Everything WRONG With Our Self Build Camper Van || Watch This Before You Start Yours! [LyOG8mE3460].mkv", "id" => "LyOG8mE3460", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LyOG8mE3460", "playlist_index" => 43, "timestamp" => 1749366030, "title" => "Everything WRONG With Our Self Build Camper Van || Watch This Before You Start Yours!", "upload_date" => "20250608"} 10:57:18.795 [debug] QUERY OK source="sources" db=0.2ms idle=1241.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:57:18.796 [debug] QUERY OK source="sources" db=0.0ms idle=1241.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:18.796 [debug] QUERY OK source="media_items" db=0.3ms idle=1241.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-08 07:00:30Z], 10] 10:57:18.807 [debug] QUERY OK source="media_items" db=10.6ms idle=1172.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["RATING EVERY PART OF OUR SELF BUILD CAMPER VAN CONVERSION OUT OF 10 || WHAT WOULD WE CHANGE ABOUT OF FIRST VAN CONVERSION BUILD || REVIEWING OUR SELF BUILT VAN CONVERSION, WHAT WOULD WE DO DIFFERENT ||\n\nA camper van conversion can cost anywhere from £1,000 to £20,000—and no matter your budget, that’s a big investment. So in this video, I’m going to rate every part of our self-built VW Crafter camper van out of 10. I built this van from the ground up for my family of four, and we’ve just returned from a six-week Arctic adventure where we tested it in temperatures as low as -15°C. From layout and insulation to heating, electrics, storage, and all the clever little features—we're putting it all to the test. I’ll show you what worked, what didn’t, what I’d change, and what I’d definitely do again. Whether you’re planning your first van or looking to upgrade, I hope this gives you some useful insight. Let’s get into it! \n\nFollow us on Instagram @abucklifeofficial\n\nFirst Access to our NEW Mech! \nhttps://abucklife.myshopify.com/\n\nThank you so much for watching and we can't wait to share more of adventures with you.\nOur van is a VW Crafter Long Wheel Base LWB 4 Motion (4x4/AWD) Van. If you have any questions drop me a comment or dm me! \n\nHere is the full build playlist with a video for each part of the build: https://www.youtube.com/playlist?list=PLIqoHmTCdKe4-7V-pkNPZJ5-Y0W5500S0\n\nQuality Products we Use in our Self Build Camper Van: \n- Our AirFryer Oven https://amzn.to/42TDBtE\n- VANDERMOON MOONBOXES AND MOON ORGANISERS | We love all our VANDERMOON gear, from the moon boxes to the moon organisers our van would not be as functional and light weight without them, \nUse Code 'buck10' for 10% off your order! Check out Vandermoon here https://www.vandermoon.com/eng/en/logowanie?create_account=1&s=buck10\n(you do need to use the link for the discount to work!)\n- AUXBEAM LIGHTING | Use this code 'ABL15' to save 15% off your first order and the link https://www.shareasale.com/u.cfm?d=1262373&m=67515&u=4545378\n- HELINOX | camping furniture is so lightweight, easy to set up and durable. Little man loves his mini chair. Use this link https://tidd.ly/41M7tZF and code 'VN7GQVZ43XDB' for 10% OFF. \n- SOLO STOVE | is amazing for a safe camp fire and is from www.adventurevanlife.com. Use code 'abucklife' for discount site wide.\n- AUTOTERM DIESEL HEATER| We stay warm with a 4KW AUTOTERM Diesel Heater and Engine Pre Heater. Use code 'abucklife' for discount at www.autoterm.store\n- TRELINO TOILET| Our off grid travel would not be possible without our Trelino Toilet. Game Changer. \nClick the link https://tidd.ly/4gwZnsa and use the code 'abucklife' to receive a FREE accessories set when ordering a Trelino composting toilet.\n\nSome links in this description are affiliate links. When you buy through these links, I get a small commission at no extra cost to you. This really supports the channel and helps us to bring better content to you and we really appreciate the support. Thank you.\n\n0:00 Intro\n1:38 The Van - VW Crafter 4motion\n2:15 Head Room \n3:12 Layout\n4:09 Fabwox Rock and Roll Bed\n4:24 Insulation (dodomat)\n5:49 Vandermoon Moon Box Review\n6:28 Showeroom Design\n7:45 Trelino Composting Toilet Review\n9:21 Water Tank and Bobil Hybrid Hot Water System Review\n10:58 Electrical Victron System and Induction Hob\n13:34 Dometic Fridge Review\n15:31 Autoterm 4kw Diesel Heater Review\n16:33 Mattress\n17:04 Jackson Leisure Adventurer Windows Review\n17:49 Vandermoon Moon Organisers Review\n18:13 Storage\n19:01 MaxAir Fans Review\n19:30 Starlink Mini Review\n20:38 L Track and Wall Cladding", "Everything WRONG With Our Self Build Camper Van || Watch This Before You Start Yours!", "9d988498-f4fe-40ea-a96e-c021a06848d8", 10, [], 1291, false, "LyOG8mE3460", "https://www.youtube.com/watch?v=LyOG8mE3460", 43, "/downloads/Vanlife/2025-06-08 Everything WRONG With Our Self Build Camper Van || Watch This Before You Start Yours!/Everything WRONG With Our Self Build Camper Van || Watch This Before You Start Yours! [LyOG8mE3460].mkv", false, false, false, 1, ~U[2025-06-08 07:00:30Z], ~U[2026-07-11 14:57:18Z], ~U[2026-07-11 14:57:18Z], "RATING EVERY PART OF OUR SELF BUILD CAMPER VAN CONVERSION OUT OF 10 || WHAT WOULD WE CHANGE ABOUT OF FIRST VAN CONVERSION BUILD || REVIEWING OUR SELF BUILT VAN CONVERSION, WHAT WOULD WE DO DIFFERENT ||\n\nA camper van conversion can cost anywhere from £1,000 to £20,000—and no matter your budget, that’s a big investment. So in this video, I’m going to rate every part of our self-built VW Crafter camper van out of 10. I built this van from the ground up for my family of four, and we’ve just returned from a six-week Arctic adventure where we tested it in temperatures as low as -15°C. From layout and insulation to heating, electrics, storage, and all the clever little features—we're putting it all to the test. I’ll show you what worked, what didn’t, what I’d change, and what I’d definitely do again. Whether you’re planning your first van or looking to upgrade, I hope this gives you some useful insight. Let’s get into it! \n\nFollow us on Instagram @abucklifeofficial\n\nFirst Access to our NEW Mech! \nhttps://abucklife.myshopify.com/\n\nThank you so much for watching and we can't wait to share more of adventures with you.\nOur van is a VW Crafter Long Wheel Base LWB 4 Motion (4x4/AWD) Van. If you have any questions drop me a comment or dm me! \n\nHere is the full build playlist with a video for each part of the build: https://www.youtube.com/playlist?list=PLIqoHmTCdKe4-7V-pkNPZJ5-Y0W5500S0\n\nQuality Products we Use in our Self Build Camper Van: \n- Our AirFryer Oven https://amzn.to/42TDBtE\n- VANDERMOON MOONBOXES AND MOON ORGANISERS | We love all our VANDERMOON gear, from the moon boxes to the moon organisers our van would not be as functional and light weight without them, \nUse Code 'buck10' for 10% off your order! Check out Vandermoon here https://www.vandermoon.com/eng/en/logowanie?create_account=1&s=buck10\n(you do need to use the link for the discount to work!)\n- AUXBEAM LIGHTING | Use this code 'ABL15' to save 15% off your first order and the link https://www.shareasale.com/u.cfm?d=1262373&m=67515&u=4545378\n- HELINOX | camping furniture is so lightweight, easy to set up and durable. Little man loves his mini chair. Use this link https://tidd.ly/41M7tZF and code 'VN7GQVZ43XDB' for 10% OFF. \n- SOLO STOVE | is amazing for a safe camp fire and is from www.adventurevanlife.com. Use code 'abucklife' for discount site wide.\n- AUTOTERM DIESEL HEATER| We stay warm with a 4KW AUTOTERM Diesel Heater and Engine Pre Heater. Use code 'abucklife' for discount at www.autoterm.store\n- TRELINO TOILET| Our off grid travel would not be possible without our Trelino Toilet. Game Changer. \nClick the link https://tidd.ly/4gwZnsa and use the code 'abucklife' to receive a FREE accessories set when ordering a Trelino composting toilet.\n\nSome links in this description are affiliate links. When you buy through these links, I get a small commission at no extra cost to you. This really supports the channel and helps us to bring better content to you and we really appreciate the support. Thank you.\n\n0:00 Intro\n1:38 The Van - VW Crafter 4motion\n2:15 Head Room \n3:12 Layout\n4:09 Fabwox Roc (truncated) 10:57:18.808 [debug] QUERY OK source="sources" db=0.2ms idle=182.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:18.808 [debug] QUERY OK source="media_profiles" db=0.1ms idle=12.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:57:18.808 [debug] QUERY OK source="media_items" db=0.2ms idle=12.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 [10162] 10:57:18.808 [debug] Current batch of media processed. Will check again in 1000ms 10:57:19.809 [debug] Current batch of media processed. Will check again in 1000ms 10:57:20.810 [debug] Current batch of media processed. Will check again in 1000ms 10:57:21.811 [debug] Current batch of media processed. Will check again in 1000ms 10:57:22.812 [debug] Current batch of media processed. Will check again in 1000ms 10:57:23.813 [debug] Current batch of media processed. Will check again in 1000ms 10:57:24.814 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/nicole.and.edden/?hl=en\nSubscribe on YouTube: https://www.youtube.com/@UCQtcuKddjkp3R-J6WrxsmUw \nTheir TikTok: https://www.tiktok.com/@UCQtcuKddjkp3R-J6WrxsmUw \nWebsite: https://anandalivingexperiences.com/our-story\n\nNicole and Edden are two of the most insanely talented builders I've personally ever seen. Could this be one of the greatest builds in existence? To start it's a 4x4 Sprinter Van capable of going anywhere with 1,400w of solar on a tilltable array, 800aH of 12v battery bank storage with a full victron system, huge Cruise and Comfort air con system, heated floors, convertible and motorized BEDS, absolutely incredible artwork / design and so much more. This van absolutely has EVERYTHING... \n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "duration" => 735, "filename" => "/downloads/Vanlife/2024-12-23 DIY LUXURY VAN TOUR ⧸ BEST Sprinter Van w⧸ Hidden Shower + Incredible Design ⧸ Tiny Home on Wheels/DIY LUXURY VAN TOUR ⧸ BEST Sprinter Van w⧸ Hidden Shower + Incredible Design ⧸ Tiny Home on Wheels [1UPvi1ltk-M].mp4", "id" => "1UPvi1ltk-M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1UPvi1ltk-M", "playlist_index" => 44, "timestamp" => 1734984900, "title" => "DIY LUXURY VAN TOUR / BEST Sprinter Van w/ Hidden Shower + Incredible Design / Tiny Home on Wheels", "upload_date" => "20241223"} 10:57:24.815 [debug] QUERY OK source="sources" db=0.1ms idle=260.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:57:24.815 [debug] QUERY OK source="sources" db=0.1ms idle=260.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:24.815 [debug] QUERY OK source="media_items" db=0.3ms idle=260.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-23 20:15:00Z], 10] 10:57:24.817 [debug] QUERY OK source="media_items" db=0.8ms idle=261.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/nicole.and.edden/?hl=en\nSubscribe on YouTube: https://www.youtube.com/@UCQtcuKddjkp3R-J6WrxsmUw \nTheir TikTok: https://www.tiktok.com/@UCQtcuKddjkp3R-J6WrxsmUw \nWebsite: https://anandalivingexperiences.com/our-story\n\nNicole and Edden are two of the most insanely talented builders I've personally ever seen. Could this be one of the greatest builds in existence? To start it's a 4x4 Sprinter Van capable of going anywhere with 1,400w of solar on a tilltable array, 800aH of 12v battery bank storage with a full victron system, huge Cruise and Comfort air con system, heated floors, convertible and motorized BEDS, absolutely incredible artwork / design and so much more. This van absolutely has EVERYTHING... \n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "DIY LUXURY VAN TOUR / BEST Sprinter Van w/ Hidden Shower + Incredible Design / Tiny Home on Wheels", "66b472eb-9619-499a-811a-c80d1bbc9ec5", 10, [], 735, false, "1UPvi1ltk-M", "https://www.youtube.com/watch?v=1UPvi1ltk-M", 44, "/downloads/Vanlife/2024-12-23 DIY LUXURY VAN TOUR ⧸ BEST Sprinter Van w⧸ Hidden Shower + Incredible Design ⧸ Tiny Home on Wheels/DIY LUXURY VAN TOUR ⧸ BEST Sprinter Van w⧸ Hidden Shower + Incredible Design ⧸ Tiny Home on Wheels [1UPvi1ltk-M].mp4", false, false, false, 1, ~U[2024-12-23 20:15:00Z], ~U[2026-07-11 14:57:24Z], ~U[2026-07-11 14:57:24Z], "🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/nicole.and.edden/?hl=en\nSubscribe on YouTube: https://www.youtube.com/@UCQtcuKddjkp3R-J6WrxsmUw \nTheir TikTok: https://www.tiktok.com/@UCQtcuKddjkp3R-J6WrxsmUw \nWebsite: https://anandalivingexperiences.com/our-story\n\nNicole and Edden are two of the most insanely talented builders I've personally ever seen. Could this be one of the greatest builds in existence? To start it's a 4x4 Sprinter Van capable of going anywhere with 1,400w of solar on a tilltable array, 800aH of 12v battery bank storage with a full victron system, huge Cruise and Comfort air con system, heated floors, convertible and motorized BEDS, absolutely incredible artwork / design and so much more. This van absolutely has EVERYTHING... \n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "DIY LUXURY VAN TOUR / BEST Sprinter Van w/ Hidden Shower + Incredible Design / Tiny Home on Wheels", 10, 735, false, "1UPvi1ltk-M", "https://www.youtube.com/watch?v=1UPvi1ltk-M", "/downloads/Vanlife/2024-12-23 DIY LUXURY VAN TOUR ⧸ BEST Sprinter Van w⧸ Hidden Shower + Incredible Design ⧸ Tiny Home on Wheels/DIY LUXURY VAN TOUR ⧸ BEST Sprinter Van w⧸ Hidden Shower + Incredible Design ⧸ Tiny Home on Wheels [1UPvi1ltk-M].mp4", false, ~U[2024-12-23 20:15:00Z]] 10:57:24.817 [debug] QUERY OK source="sources" db=0.1ms idle=184.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:24.817 [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] 10:57:24.817 [debug] QUERY OK source="media_items" db=0.1ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10164] 10:57:24.818 [debug] Current batch of media processed. Will check again in 1000ms 10:57:25.818 [debug] Current batch of media processed. Will check again in 1000ms 10:57:26.819 [debug] Current batch of media processed. Will check again in 1000ms 10:57:27.820 [debug] Current batch of media processed. Will check again in 1000ms 10:57:28.821 [debug] Current batch of media processed. Will check again in 1000ms 10:57:29.822 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Jay does a deep-dive on all the features for this expedition-ready, 4X4 camping platform.\n\n» Subscribe: http://bit.ly/JLGSubscribe\n» Visit the Official Site: http://bit.ly/JLGOfficialSite\n\nTHE BEST OF JAY LENO'S GARAGE\n» Exclusive First Looks: http://bit.ly/JLGExclusives\n» Ultra Rare Supercars: http://bit.ly/JLGSupercars\n» Jay's Book Club: http://bit.ly/JLGBookClub\n\nJAY LENO'S GARAGE ON SOCIAL\nFacebook: http://facebook.com/JayLenosGarage\nTwitter: http://twitter.com/LenosGarage\nInstagram: http://instagram.com/jaylenosgarage/\n\nABOUT JAY LENO'S GARAGE\nA new video every Sunday! Visit Jay Leno's Garage, the Emmy-winning series where Jay Leno gives car reviews, motorcycle reviews, compares cars, and shares his passion and expertise on anything that rolls, explodes, and makes noise. Classic cars, restomods, super cars like the McLaren P1, sports cars like Porsche 918 Spyder and Camaro Z28, cafe racers, vintage cars, and much, much more.\n\nNBC ON SOCIAL:\nYouTube: http://www.youtube.com/nbc\nTwitter: http://Twitter.com/NBC\nFacebook: http://Facebook.com/NBC\nInstagram: http://instagram.com/nbc\n\nInside The EarthRoamer LTi | Jay Leno's Garage", "duration" => 2554, "filename" => "/downloads/Vanlife/2022-07-18 Inside The EarthRoamer LTi | Jay Leno's Garage/Inside The EarthRoamer LTi | Jay Leno's Garage [xG-kVnVwFoo].mp4", "id" => "xG-kVnVwFoo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xG-kVnVwFoo", "playlist_index" => 45, "timestamp" => 1658160041, "title" => "Inside The EarthRoamer LTi | Jay Leno's Garage", "upload_date" => "20220718"} 10:57:29.823 [debug] QUERY OK source="sources" db=0.2ms idle=1268.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:57:29.823 [debug] QUERY OK source="sources" db=0.1ms idle=1269.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:29.824 [debug] QUERY OK source="media_items" db=0.4ms idle=1269.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-07-18 16:00:41Z], 10] 10:57:29.825 [debug] QUERY OK source="media_items" db=1.0ms idle=1187.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Jay does a deep-dive on all the features for this expedition-ready, 4X4 camping platform.\n\n» Subscribe: http://bit.ly/JLGSubscribe\n» Visit the Official Site: http://bit.ly/JLGOfficialSite\n\nTHE BEST OF JAY LENO'S GARAGE\n» Exclusive First Looks: http://bit.ly/JLGExclusives\n» Ultra Rare Supercars: http://bit.ly/JLGSupercars\n» Jay's Book Club: http://bit.ly/JLGBookClub\n\nJAY LENO'S GARAGE ON SOCIAL\nFacebook: http://facebook.com/JayLenosGarage\nTwitter: http://twitter.com/LenosGarage\nInstagram: http://instagram.com/jaylenosgarage/\n\nABOUT JAY LENO'S GARAGE\nA new video every Sunday! Visit Jay Leno's Garage, the Emmy-winning series where Jay Leno gives car reviews, motorcycle reviews, compares cars, and shares his passion and expertise on anything that rolls, explodes, and makes noise. Classic cars, restomods, super cars like the McLaren P1, sports cars like Porsche 918 Spyder and Camaro Z28, cafe racers, vintage cars, and much, much more.\n\nNBC ON SOCIAL:\nYouTube: http://www.youtube.com/nbc\nTwitter: http://Twitter.com/NBC\nFacebook: http://Facebook.com/NBC\nInstagram: http://instagram.com/nbc\n\nInside The EarthRoamer LTi | Jay Leno's Garage", "Inside The EarthRoamer LTi | Jay Leno's Garage", "7f0f49cc-ee24-463b-9994-c588c61fdfdf", 10, [], 2554, false, "xG-kVnVwFoo", "https://www.youtube.com/watch?v=xG-kVnVwFoo", 45, "/downloads/Vanlife/2022-07-18 Inside The EarthRoamer LTi | Jay Leno's Garage/Inside The EarthRoamer LTi | Jay Leno's Garage [xG-kVnVwFoo].mp4", false, false, false, 1, ~U[2022-07-18 16:00:41Z], ~U[2026-07-11 14:57:29Z], ~U[2026-07-11 14:57:29Z], "Jay does a deep-dive on all the features for this expedition-ready, 4X4 camping platform.\n\n» Subscribe: http://bit.ly/JLGSubscribe\n» Visit the Official Site: http://bit.ly/JLGOfficialSite\n\nTHE BEST OF JAY LENO'S GARAGE\n» Exclusive First Looks: http://bit.ly/JLGExclusives\n» Ultra Rare Supercars: http://bit.ly/JLGSupercars\n» Jay's Book Club: http://bit.ly/JLGBookClub\n\nJAY LENO'S GARAGE ON SOCIAL\nFacebook: http://facebook.com/JayLenosGarage\nTwitter: http://twitter.com/LenosGarage\nInstagram: http://instagram.com/jaylenosgarage/\n\nABOUT JAY LENO'S GARAGE\nA new video every Sunday! Visit Jay Leno's Garage, the Emmy-winning series where Jay Leno gives car reviews, motorcycle reviews, compares cars, and shares his passion and expertise on anything that rolls, explodes, and makes noise. Classic cars, restomods, super cars like the McLaren P1, sports cars like Porsche 918 Spyder and Camaro Z28, cafe racers, vintage cars, and much, much more.\n\nNBC ON SOCIAL:\nYouTube: http://www.youtube.com/nbc\nTwitter: http://Twitter.com/NBC\nFacebook: http://Facebook.com/NBC\nInstagram: http://instagram.com/nbc\n\nInside The EarthRoamer LTi | Jay Leno's Garage", "Inside The EarthRoamer LTi | Jay Leno's Garage", 10, 2554, false, "xG-kVnVwFoo", "https://www.youtube.com/watch?v=xG-kVnVwFoo", "/downloads/Vanlife/2022-07-18 Inside The EarthRoamer LTi | Jay Leno's Garage/Inside The EarthRoamer LTi | Jay Leno's Garage [xG-kVnVwFoo].mp4", false, ~U[2022-07-18 16:00:41Z]] 10:57:29.826 [debug] QUERY OK source="sources" db=0.2ms idle=187.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:29.826 [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] 10:57:29.827 [debug] QUERY OK source="media_items" db=0.3ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10166] 10:57:29.827 [debug] Current batch of media processed. Will check again in 1000ms 10:57:30.471 [info] {"source":"oban","duration":808,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:57:30.827 [debug] Current batch of media processed. Will check again in 1000ms 10:57:31.828 [debug] Current batch of media processed. Will check again in 1000ms 10:57:32.829 [debug] Current batch of media processed. Will check again in 1000ms 10:57:33.830 [debug] Current batch of media processed. Will check again in 1000ms 10:57:34.831 [debug] Current batch of media processed. Will check again in 1000ms 10:57:35.832 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "This past weekend during my van trip with Back Road Van Adventures I was introduced to a couple out of Canada who had the most insane interior in their 170\" Sprinter that I had EVER seen. \n\nThis design maximized space by it's use of curves in the cabinetry and they even had room for a full size shower!\n\nIf you'd like to meet members of the #vanlife community Check Out Van Land for scheduled trips!\n►https://vanlandstore.com/blogs/van-adventure-trips\n\n\nLearn How To Build Your Own Van\n►https://vanland.mykajabi.com/van-land... \n\n\n*Follow Our Socials*\n\n_Instagram_\n► https://www.instagram.com/van__land/\n\n_Facebook_\n► https://www.facebook.com/Vanlandstore/\n\n_TikTok_\n► https://www.tiktok.com/@van.land1\n\n#vanbuilder #adventurevan #adventurevan #explorepage #vanlife #mercedesbenz #vanbuilder #sprinterconversion #fyp シ #fypシ゚viral", "duration" => 892, "filename" => "/downloads/Vanlife/2024-06-29 Insanely Cool Interior Van Tour/Insanely Cool Interior Van Tour [_eBqZ26LeCQ].mkv", "id" => "_eBqZ26LeCQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_eBqZ26LeCQ", "playlist_index" => 46, "timestamp" => 1719675014, "title" => "Insanely Cool Interior Van Tour", "upload_date" => "20240629"} 10:57:35.833 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=278.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:57:35.833 [debug] QUERY OK source="sources" db=0.1ms idle=279.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:35.834 [debug] QUERY OK source="media_items" db=0.4ms idle=279.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-29 15:30:14Z], 10] 10:57:35.836 [debug] QUERY OK source="media_items" db=1.7ms idle=280.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This past weekend during my van trip with Back Road Van Adventures I was introduced to a couple out of Canada who had the most insane interior in their 170\" Sprinter that I had EVER seen. \n\nThis design maximized space by it's use of curves in the cabinetry and they even had room for a full size shower!\n\nIf you'd like to meet members of the #vanlife community Check Out Van Land for scheduled trips!\n►https://vanlandstore.com/blogs/van-adventure-trips\n\n\nLearn How To Build Your Own Van\n►https://vanland.mykajabi.com/van-land... \n\n\n*Follow Our Socials*\n\n_Instagram_\n► https://www.instagram.com/van__land/\n\n_Facebook_\n► https://www.facebook.com/Vanlandstore/\n\n_TikTok_\n► https://www.tiktok.com/@van.land1\n\n#vanbuilder #adventurevan #adventurevan #explorepage #vanlife #mercedesbenz #vanbuilder #sprinterconversion #fyp シ #fypシ゚viral", "Insanely Cool Interior Van Tour", "a5ca09ac-9009-408d-a64e-efd4ddb9ff2e", 10, [], 892, false, "_eBqZ26LeCQ", "https://www.youtube.com/watch?v=_eBqZ26LeCQ", 46, "/downloads/Vanlife/2024-06-29 Insanely Cool Interior Van Tour/Insanely Cool Interior Van Tour [_eBqZ26LeCQ].mkv", false, false, false, 1, ~U[2024-06-29 15:30:14Z], ~U[2026-07-11 14:57:35Z], ~U[2026-07-11 14:57:35Z], "This past weekend during my van trip with Back Road Van Adventures I was introduced to a couple out of Canada who had the most insane interior in their 170\" Sprinter that I had EVER seen. \n\nThis design maximized space by it's use of curves in the cabinetry and they even had room for a full size shower!\n\nIf you'd like to meet members of the #vanlife community Check Out Van Land for scheduled trips!\n►https://vanlandstore.com/blogs/van-adventure-trips\n\n\nLearn How To Build Your Own Van\n►https://vanland.mykajabi.com/van-land... \n\n\n*Follow Our Socials*\n\n_Instagram_\n► https://www.instagram.com/van__land/\n\n_Facebook_\n► https://www.facebook.com/Vanlandstore/\n\n_TikTok_\n► https://www.tiktok.com/@van.land1\n\n#vanbuilder #adventurevan #adventurevan #explorepage #vanlife #mercedesbenz #vanbuilder #sprinterconversion #fyp シ #fypシ゚viral", "Insanely Cool Interior Van Tour", 10, 892, false, "_eBqZ26LeCQ", "https://www.youtube.com/watch?v=_eBqZ26LeCQ", "/downloads/Vanlife/2024-06-29 Insanely Cool Interior Van Tour/Insanely Cool Interior Van Tour [_eBqZ26LeCQ].mkv", false, ~U[2024-06-29 15:30:14Z]] 10:57:35.836 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [10] 10:57:35.837 [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:57:35.837 [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 [10168] 10:57:35.837 [debug] Current batch of media processed. Will check again in 1000ms 10:57:36.838 [debug] Current batch of media processed. Will check again in 1000ms 10:57:37.839 [debug] Current batch of media processed. Will check again in 1000ms 10:57:38.840 [debug] Current batch of media processed. Will check again in 1000ms 10:57:39.841 [debug] Current batch of media processed. Will check again in 1000ms 10:57:40.842 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔥 Interested in products used? 🔽\n\nIn this video we show you the step by step process on how we transform a 2023 Ford Transit Van into a livable camper van. It took us two months of 40 hours weeks to finish this project for our client. Full Amazon shipping list is linked below. If you’re interested in a camper van conversion, click this link to learn more: https://forms.gle/RKUjHNQBHF2to6gF8\n\nSupport the channel by purchasing our NEW cleaning product here:\nAmazon: https://www.amazon.com/gp/product/B0DBY3GKZW/ref=ox_sc_act_title_4?smid=A1G0IDKYYD8EYD&psc=1\n\nYou guys asked for it! Here is the link to purchase your “any just like that” merch!\nhttps://builder-blueprint.printify.me/products\n\nProducts Used ⬇️\n\n🛜HomeFi Wifi: Get $27 off your order with code “Hope&Manny”\nhttps://homefi.info/discount/Hope&Manny\n\n🧦 Try the BEST work socks: Get 10% off on my favorite work socks from Camel City Mill with code “BUILDERSBLUEPRINT” \nhttps://manly.link/builders-blueprint-3\n\n🪫 LiTime Electrical:\nUse code BRB8 at checkout to enjoy 8% OFF discount! This offer is valid until July 18th.\nLiTime 12V 230Ah Bluetooth Battery:\n https://www.litime.com/products/12v-230ah-bluetooth-lithium-rv-battery/?ref=BRB\n\nLiTime 3000W lnverter Charger: https://bit.ly/4nKITBB\n\nLiTime 30A MPPT Solar Charge Controller: http://bit.ly/447OVEu\n\nLiTime Prime Day Sale, Don’t miss out this special offers: https://www.litime.com/?ref=BRB\n\n🧑\u200D🔧 Plumbing Items from Plumbingsell: https://plumbingsell.com \nUse code “Blueprint” at checkout for 10% off\n\n💧 WaterDrop Filter:\nhttps://www.waterdropfilter.com/collections/multi-stage-undersink-filtration-system/products/under-counter-water-filter-system-3-stage-tsa?ref=headermenu\n\n🚽 Cuddy Toilet: \nGet $50 Off With The Summer Sale till the end of July \nhttps://compocloset.com/products/cuddy?utm_source=yt&utm_campaign=brb\n\nStove: https://amzn.to/3TASPzm\nFridge: https://amzn.to/464rkFY\nOutdoor Shower: https://amzn.to/4k1MdFl\n\n\nALL Amazon Products Used Here: ▶️https://www.amazon.com/shop/influencer-68a4c225/list/1N983VM2R8QGO?ref_=cm_sw_r_cp_ud_aipsflist_942GZ2HVESHTGXV8XQ8Z\n\nFollow Us On IG & TikTok For RV Tours\nhttps://beerrunbus.wixsite.com/website-1/bio-link\n\n#waterdropfilter #waterfilter #waterpurifier #waterdropfilter #primedaydeal #primedayundersinkwaterfilter\n\nAffiliate Links Used", "duration" => 1956, "filename" => "/downloads/Vanlife/2025-07-10 How I Built A DIY Camper Van Conversion Start To Finish/How I Built A DIY Camper Van Conversion Start To Finish [XUvpwpGyKOI].mkv", "id" => "XUvpwpGyKOI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XUvpwpGyKOI", "playlist_index" => 47, "timestamp" => 1752159648, "title" => "How I Built A DIY Camper Van Conversion Start To Finish", "upload_date" => "20250710"} 10:57:40.843 [debug] QUERY OK source="sources" db=0.1ms idle=1288.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:57:40.843 [debug] QUERY OK source="sources" db=0.1ms idle=1288.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:40.844 [debug] QUERY OK source="media_items" db=0.5ms idle=1288.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-10 15:00:48Z], 10] 10:57:40.845 [debug] QUERY OK source="media_items" db=1.2ms idle=1195.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔥 Interested in products used? 🔽\n\nIn this video we show you the step by step process on how we transform a 2023 Ford Transit Van into a livable camper van. It took us two months of 40 hours weeks to finish this project for our client. Full Amazon shipping list is linked below. If you’re interested in a camper van conversion, click this link to learn more: https://forms.gle/RKUjHNQBHF2to6gF8\n\nSupport the channel by purchasing our NEW cleaning product here:\nAmazon: https://www.amazon.com/gp/product/B0DBY3GKZW/ref=ox_sc_act_title_4?smid=A1G0IDKYYD8EYD&psc=1\n\nYou guys asked for it! Here is the link to purchase your “any just like that” merch!\nhttps://builder-blueprint.printify.me/products\n\nProducts Used ⬇️\n\n🛜HomeFi Wifi: Get $27 off your order with code “Hope&Manny”\nhttps://homefi.info/discount/Hope&Manny\n\n🧦 Try the BEST work socks: Get 10% off on my favorite work socks from Camel City Mill with code “BUILDERSBLUEPRINT” \nhttps://manly.link/builders-blueprint-3\n\n🪫 LiTime Electrical:\nUse code BRB8 at checkout to enjoy 8% OFF discount! This offer is valid until July 18th.\nLiTime 12V 230Ah Bluetooth Battery:\n https://www.litime.com/products/12v-230ah-bluetooth-lithium-rv-battery/?ref=BRB\n\nLiTime 3000W lnverter Charger: https://bit.ly/4nKITBB\n\nLiTime 30A MPPT Solar Charge Controller: http://bit.ly/447OVEu\n\nLiTime Prime Day Sale, Don’t miss out this special offers: https://www.litime.com/?ref=BRB\n\n🧑\u200D🔧 Plumbing Items from Plumbingsell: https://plumbingsell.com \nUse code “Blueprint” at checkout for 10% off\n\n💧 WaterDrop Filter:\nhttps://www.waterdropfilter.com/collections/multi-stage-undersink-filtration-system/products/under-counter-water-filter-system-3-stage-tsa?ref=headermenu\n\n🚽 Cuddy Toilet: \nGet $50 Off With The Summer Sale till the end of July \nhttps://compocloset.com/products/cuddy?utm_source=yt&utm_campaign=brb\n\nStove: https://amzn.to/3TASPzm\nFridge: https://amzn.to/464rkFY\nOutdoor Shower: https://amzn.to/4k1MdFl\n\n\nALL Amazon Products Used Here: ▶️https://www.amazon.com/shop/influencer-68a4c225/list/1N983VM2R8QGO?ref_=cm_sw_r_cp_ud_aipsflist_942GZ2HVESHTGXV8XQ8Z\n\nFollow Us On IG & TikTok For RV Tours\nhttps://beerrunbus.wixsite.com/website-1/bio-link\n\n#waterdropfilter #waterfilter #waterpurifier #waterdropfilter #primedaydeal #primedayundersinkwaterfilter\n\nAffiliate Links Used", "How I Built A DIY Camper Van Conversion Start To Finish", "11d11a89-93c4-49a4-8d6a-9b4732c7174d", 10, [], 1956, false, "XUvpwpGyKOI", "https://www.youtube.com/watch?v=XUvpwpGyKOI", 47, "/downloads/Vanlife/2025-07-10 How I Built A DIY Camper Van Conversion Start To Finish/How I Built A DIY Camper Van Conversion Start To Finish [XUvpwpGyKOI].mkv", false, false, false, 2, ~U[2025-07-10 15:00:48Z], ~U[2026-07-11 14:57:40Z], ~U[2026-07-11 14:57:40Z], "🔥 Interested in products used? 🔽\n\nIn this video we show you the step by step process on how we transform a 2023 Ford Transit Van into a livable camper van. It took us two months of 40 hours weeks to finish this project for our client. Full Amazon shipping list is linked below. If you’re interested in a camper van conversion, click this link to learn more: https://forms.gle/RKUjHNQBHF2to6gF8\n\nSupport the channel by purchasing our NEW cleaning product here:\nAmazon: https://www.amazon.com/gp/product/B0DBY3GKZW/ref=ox_sc_act_title_4?smid=A1G0IDKYYD8EYD&psc=1\n\nYou guys asked for it! Here is the link to purchase your “any just like that” merch!\nhttps://builder-blueprint.printify.me/products\n\nProducts Used ⬇️\n\n🛜HomeFi Wifi: Get $27 off your order with code “Hope&Manny”\nhttps://homefi.info/discount/Hope&Manny\n\n🧦 Try the BEST work socks: Get 10% off on my favorite work socks from Camel City Mill with code “BUILDERSBLUEPRINT” \nhttps://manly.link/builders-blueprint-3\n\n🪫 LiTime Electrical:\nUse code BRB8 at checkout to enjoy 8% OFF discount! This offer is valid until July 18th.\nLiTime 12V 230Ah Bluetooth Battery:\n https://www.litime.com/products/12v-230ah-bluetooth-lithium-rv-battery/?ref=BRB\n\nLiTime 3000W lnverter Charger: https://bit.ly/4nKITBB\n\nLiTime 30A MPPT Solar Charge Controller: http://bit.ly/447OVEu\n\nLiTime Prime Day Sale, Don’t miss out this special offers: https://www.litime.com/?ref=BRB\n\n🧑\u200D🔧 Plumbing Items from Plumbingsell: https://plumbingsell.com \nUse code “Blueprint” at checkout for 10% off\n\n💧 WaterDrop Filter:\nhttps://www.waterdropfilter.com/collections/multi-stage-undersink-filtration-system/products/under-counter-water-filter-system-3-stage-tsa?ref=headermenu\n\n🚽 Cuddy Toilet: \nGet $50 Off With The Summer Sale till the end of July \nhttps://compocloset.com/products/cuddy?utm_source=yt&utm_campaign=brb\n\nStove: https://amzn.to/3TASPzm\nFridge: https://amzn.to/464rkFY\nOutdoor Shower: https://amzn.to/4k1MdFl\n\n\nALL Amazon Products Used Here: ▶️https://www.amazon.com/shop/influencer-68a4c225/list/1N983VM2R8QGO?ref_=cm_sw_r_cp_ud_aipsflist_942GZ2HVESHTGXV8XQ8Z\n\nFollow Us On IG & TikTok For RV Tours\nhttps://beerrunbus.wixsite.com/website-1/bio-link\n\n#waterdropfilter #waterfilter #waterpurifier #waterdropfilter #primedaydeal #primedayundersinkwaterfilter\n\nAffiliate Links Used", "How I Built A DIY Camper Van Conversion Start To Finish", 10, 1956, false, "XUvpwpGyKOI", "https://www.youtube.com/watch?v=XUvpwpGyKOI", "/downloads/Vanlife/2025-07-10 How I Built A DIY Camper Van Conversion Start To Finish/How I Built A DIY Camper Van Conversion Start To Finish [XUvpwpGyKOI].mkv", false, ~U[2025-07-10 15:00:48Z]] 10:57:40.845 [debug] QUERY OK source="sources" db=0.1ms idle=195.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:40.846 [debug] QUERY OK source="media_profiles" db=0.0ms 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:57:40.846 [debug] QUERY OK source="media_items" db=0.2ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10170] 10:57:40.846 [debug] Current batch of media processed. Will check again in 1000ms 10:57:41.847 [debug] Current batch of media processed. Will check again in 1000ms 10:57:42.848 [debug] Current batch of media processed. Will check again in 1000ms 10:57:43.849 [debug] Current batch of media processed. Will check again in 1000ms 10:57:44.850 [debug] Current batch of media processed. Will check again in 1000ms 10:57:45.851 [debug] Current batch of media processed. Will check again in 1000ms 10:57:46.852 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You've seen the ruggedly capable outside of an EarthRoamer XV-LTS, now step inside the smartly designed and surprisingly spacious interior for a closer look at what makes these vehicles so special.", "duration" => 712, "filename" => "/downloads/Vanlife/2015-01-29 ER XVLT Interior Tour/ER XVLT Interior Tour [GpXPF5EOd4c].mp4", "id" => "GpXPF5EOd4c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GpXPF5EOd4c", "playlist_index" => 48, "timestamp" => 1422571429, "title" => "ER XVLT Interior Tour", "upload_date" => "20150129"} 10:57:46.853 [debug] QUERY OK source="sources" db=0.3ms idle=298.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:57:46.853 [debug] QUERY OK source="sources" db=0.1ms idle=299.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:46.854 [debug] QUERY OK source="media_items" db=0.4ms idle=299.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2015-01-29 22:43:49Z], 10] 10:57:46.855 [debug] QUERY OK source="media_items" db=1.1ms idle=300.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["You've seen the ruggedly capable outside of an EarthRoamer XV-LTS, now step inside the smartly designed and surprisingly spacious interior for a closer look at what makes these vehicles so special.", "ER XVLT Interior Tour", "98a234ee-0447-4a38-b191-3163b3e8adf8", 10, [], 712, false, "GpXPF5EOd4c", "https://www.youtube.com/watch?v=GpXPF5EOd4c", 48, "/downloads/Vanlife/2015-01-29 ER XVLT Interior Tour/ER XVLT Interior Tour [GpXPF5EOd4c].mp4", false, false, false, 1, ~U[2015-01-29 22:43:49Z], ~U[2026-07-11 14:57:46Z], ~U[2026-07-11 14:57:46Z], "You've seen the ruggedly capable outside of an EarthRoamer XV-LTS, now step inside the smartly designed and surprisingly spacious interior for a closer look at what makes these vehicles so special.", "ER XVLT Interior Tour", 10, 712, false, "GpXPF5EOd4c", "https://www.youtube.com/watch?v=GpXPF5EOd4c", "/downloads/Vanlife/2015-01-29 ER XVLT Interior Tour/ER XVLT Interior Tour [GpXPF5EOd4c].mp4", false, ~U[2015-01-29 22:43:49Z]] 10:57:46.856 [debug] QUERY OK source="sources" db=0.1ms idle=196.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:46.856 [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] 10:57:46.856 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10172] 10:57:46.856 [debug] Current batch of media processed. Will check again in 1000ms 10:57:47.857 [debug] Current batch of media processed. Will check again in 1000ms 10:57:48.858 [debug] Current batch of media processed. Will check again in 1000ms 10:57:49.859 [debug] Current batch of media processed. Will check again in 1000ms 10:57:50.860 [debug] Current batch of media processed. Will check again in 1000ms 10:57:51.861 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "EarthRoamer has long been a symbol of luxury and capability in terms of expedition vehicles. While that luxury of the Earthroamer can be quite expensive, there are some Earthroamer alternatives available in the expedition vehicles market. So, in this video, we'll showcase the 25 Earthroamer Alternatives You Can Consider, including some of the best expedition vehicles.\n\nEarthRoamer Alternatives List:\n\n00:00 - Introduction\n\n01:00 - Accolade XT Unicat Achat\n\n02:40 - Alaskan Campers 850 FB\n\n04:18 - Rossmonster Havn\n\n06:07 - Entegra Coach \n\n08:02 - Wanderbox Outpost 35\n\n09:46 - Dynamax Europa\n\n11:35 - Loki Falcon X15\n\n13:09 - East To West Bravado\n\n14:49 - Dynamax Isata 5\n\n16:27 - Jayco Greyhawk XL\n\n18:18 - Supertramp Megatron \n\n19:36 - TruckHouse BCR \n\n20:55 - Krug Expedition Bedrock XT2\n\n22:10 - Adrenalin Industries AWOL\n\n23:42 - 27North Trekker\n\n25:12 - Freedom Overland cruiser 3.0\n\n26:35 - Wanderbox Outpost 29\n\n28:15 - Tiger Adventure Vehicles Bengal\n\n29:43 - Rossmonster Baja Plus\n\n30:53 - Storyteller Overlanding GXV HILT\n\n32:26 - Freedom Chevy\n\n33:48 - 27North RexRover\n\n35:06 - Hymer ML-T Series\n\n36:18 - Freedom Raptor F350\n\n37:46 - Winnebago Ekko\n-----------------------------------------------------------------------------------------------------------------\nBusiness mail: mailtrailingoffraod@gmail.com\n------------------------------------------------------------------------------------------------------------------\nMusic Source & Credit: YouTube Audio Library\n-----------------------------------------------------------------------------------------------------------------\nVideo you may also like:\n* https://youtu.be/Jl7nrj75MoA\n* https://youtu.be/XYXf2jipyUM\n* https://youtu.be/FM--WjXMiCg\n-----------------------------------------------------------------------------------------------------------------\n* 25 EarthRoamer Alternatives You Can Consider explores some of the most capable expedition vehicles and overlanding trucks for those who dream of going off-grid without the price tag of an EarthRoamer. Models like the EarthRoamer LTi, EarthRoamer LTx, and EarthRoamer SX are legendary, but several EarthRoamer alternatives deliver similar comfort and durability. From a rugged expedition truck to a well-equipped off road camper, these builds are made for serious overlanding and off-road adventures. You’ll also find impressive rigs from Global Expedition Vehicles, truck camper setups, and even converted van life builds that redefine mobility. Whether you’re eyeing a 4x4, 6x6, or full offroad RV, these expedition vehicle 4x4 options are built to handle it all. Our truck camper tour and converted van tour picks show the versatility of modern builds. Perfect for fans of off grid living, overland, and tiny house tour lifestyles, this guide showcases the best expedition and off-road trucks worth exploring.\n-----------------------------------------------------------------------------------------------------------------\nDisclaimer:\n* The following video abides by the YouTube Community Guideline. The footage used in this video is for educational purposes.\n* The footage used in this video follows the Fair Usage Policy “Under Section 107” of the “Copyright Act 1976”. If you have any copyright issues, please send us an email or let us know by commenting below.\n* Some of our content may contain affiliate links, from which we earn some commission, that support us in running this channel.\n\n#expedition #overlanding #4x4 #earthroamer", "duration" => 2360, "filename" => "/downloads/Vanlife/2025-11-02 25 Earthroamer Alternatives You Can Consider | Expedition Vehicles/25 Earthroamer Alternatives You Can Consider | Expedition Vehicles [HevJiA-QrBw].mkv", "id" => "HevJiA-QrBw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HevJiA-QrBw", "playlist_index" => 49, "timestamp" => 1762092034, "title" => "25 Earthroamer Alternatives You Can Consider | Expedition Vehicles", "upload_date" => "20251102"} 10:57:51.862 [debug] QUERY OK source="sources" db=0.1ms idle=1307.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:57:51.862 [debug] QUERY OK source="sources" db=0.1ms idle=1307.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:51.863 [debug] QUERY OK source="media_items" db=0.3ms idle=1308.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-02 14:00:34Z], 10] 10:57:51.865 [debug] QUERY OK source="media_items" db=1.8ms idle=1200.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["EarthRoamer has long been a symbol of luxury and capability in terms of expedition vehicles. While that luxury of the Earthroamer can be quite expensive, there are some Earthroamer alternatives available in the expedition vehicles market. So, in this video, we'll showcase the 25 Earthroamer Alternatives You Can Consider, including some of the best expedition vehicles.\n\nEarthRoamer Alternatives List:\n\n00:00 - Introduction\n\n01:00 - Accolade XT Unicat Achat\n\n02:40 - Alaskan Campers 850 FB\n\n04:18 - Rossmonster Havn\n\n06:07 - Entegra Coach \n\n08:02 - Wanderbox Outpost 35\n\n09:46 - Dynamax Europa\n\n11:35 - Loki Falcon X15\n\n13:09 - East To West Bravado\n\n14:49 - Dynamax Isata 5\n\n16:27 - Jayco Greyhawk XL\n\n18:18 - Supertramp Megatron \n\n19:36 - TruckHouse BCR \n\n20:55 - Krug Expedition Bedrock XT2\n\n22:10 - Adrenalin Industries AWOL\n\n23:42 - 27North Trekker\n\n25:12 - Freedom Overland cruiser 3.0\n\n26:35 - Wanderbox Outpost 29\n\n28:15 - Tiger Adventure Vehicles Bengal\n\n29:43 - Rossmonster Baja Plus\n\n30:53 - Storyteller Overlanding GXV HILT\n\n32:26 - Freedom Chevy\n\n33:48 - 27North RexRover\n\n35:06 - Hymer ML-T Series\n\n36:18 - Freedom Raptor F350\n\n37:46 - Winnebago Ekko\n-----------------------------------------------------------------------------------------------------------------\nBusiness mail: mailtrailingoffraod@gmail.com\n------------------------------------------------------------------------------------------------------------------\nMusic Source & Credit: YouTube Audio Library\n-----------------------------------------------------------------------------------------------------------------\nVideo you may also like:\n* https://youtu.be/Jl7nrj75MoA\n* https://youtu.be/XYXf2jipyUM\n* https://youtu.be/FM--WjXMiCg\n-----------------------------------------------------------------------------------------------------------------\n* 25 EarthRoamer Alternatives You Can Consider explores some of the most capable expedition vehicles and overlanding trucks for those who dream of going off-grid without the price tag of an EarthRoamer. Models like the EarthRoamer LTi, EarthRoamer LTx, and EarthRoamer SX are legendary, but several EarthRoamer alternatives deliver similar comfort and durability. From a rugged expedition truck to a well-equipped off road camper, these builds are made for serious overlanding and off-road adventures. You’ll also find impressive rigs from Global Expedition Vehicles, truck camper setups, and even converted van life builds that redefine mobility. Whether you’re eyeing a 4x4, 6x6, or full offroad RV, these expedition vehicle 4x4 options are built to handle it all. Our truck camper tour and converted van tour picks show the versatility of modern builds. Perfect for fans of off grid living, overland, and tiny house tour lifestyles, this guide showcases the best expedition and off-road trucks worth exploring.\n-----------------------------------------------------------------------------------------------------------------\nDisclaimer:\n* The following video abides by the YouTube Community Guideline. The footage used in this video is for educational purposes.\n* The footage used in this video follows the Fair Usage Policy “Under Section 107” of the “Copyright Act 1976”. If you have any copyright issues, please send us an email or let us know by commenting below.\n* Some of our content may contain affiliate links, from which we earn some commission, that support us in running this channel.\n\n#expedition #overlanding #4x4 #earthroamer", "25 Earthroamer Alternatives You Can Consider | Expedition Vehicles", "55378f09-5928-4c35-bc18-9bdc04ad5161", 10, [], 2360, false, "HevJiA-QrBw", "https://www.youtube.com/watch?v=HevJiA-QrBw", 49, "/downloads/Vanlife/2025-11-02 25 Earthroamer Alternatives You Can Consider | Expedition Vehicles/25 Earthroamer Alternatives You Can Consider | Expedition Vehicles [HevJiA-QrBw].mkv", false, false, false, 2, ~U[2025-11-02 14:00:34Z], ~U[2026-07-11 14:57:51Z], ~U[2026-07-11 14:57:51Z], "EarthRoamer has long been a symbol of luxury and capability in terms of expedition vehicles. While that luxury of the Earthroamer can be quite expensive, there are some Earthroamer alternatives available in the expedition vehicles market. So, in this video, we'll showcase the 25 Earthroamer Alternatives You Can Consider, including some of the best expedition vehicles.\n\nEarthRoamer Alternatives List:\n\n00:00 - Introduction\n\n01:00 - Accolade XT Unicat Achat\n\n02:40 - Alaskan Campers 850 FB\n\n04:18 - Rossmonster Havn\n\n06:07 - Entegra Coach \n\n08:02 - Wanderbox Outpost 35\n\n09:46 - Dynamax Europa\n\n11:35 - Loki Falcon X15\n\n13:09 - East To West Bravado\n\n14:49 - Dynamax Isata 5\n\n16:27 - Jayco Greyhawk XL\n\n18:18 - Supertramp Megatron \n\n19:36 - TruckHouse BCR \n\n20:55 - Krug Expedition Bedrock XT2\n\n22:10 - Adrenalin Industries AWOL\n\n23:42 - 27North Trekker\n\n25:12 - Freedom Overland cruiser 3.0\n\n26:35 - Wanderbox Outpost 29\n\n28:15 - Tiger Adventure Vehicles Bengal\n\n29:43 - Rossmonster Baja Plus\n\n30:53 - Storyteller Overlanding GXV HILT\n\n32:26 - Freedom Chevy\n\n33:48 - 27North RexRover\n\n35:06 - Hymer ML-T Series\n\n36:18 - Freedom Raptor F350\n\n37:46 - Winnebago Ekko\n-----------------------------------------------------------------------------------------------------------------\nBusiness mail: mailtrailingoffraod@gmail.com\n------------------------------------------------------------------------------------------------------------------\nMusic Source & Credit: YouTube Audio Library\n-----------------------------------------------------------------------------------------------------------------\nVideo you may also like:\n* https://youtu.be/Jl7nrj75MoA\n* https://youtu.be/XYXf2jipyUM\n* https://youtu.be/FM--WjXMiCg\n-----------------------------------------------------------------------------------------------------------------\n* 25 EarthRoamer Alternatives You Can Consider explores some of the most capable expedition vehicles and overlanding trucks for those who dream of going off-grid without the price tag of an EarthRoamer. Models like the EarthRoamer LTi, EarthRoamer LTx, and EarthRoamer SX are legendary, but several EarthRoamer alternatives deliver similar comfort and durability. From a rugged expedition truck to a well-equipped off road camper, these builds are made for serious overlanding and off-road adventures. You’ll also find impressive rigs from Global Expedition Vehicles, truck camper setups, and even converted van life builds that redefine mobility. Whether you’re eyeing a 4x4, 6x6, or full offroad RV, these expedition vehicle 4x4 options are built to handle it all. Our truck camper tour and converted van tour picks show the versatility of modern builds. Perfect for fans of off grid living, overland, and tiny house tour lifestyles, this guide showcases the best expedition and off-road trucks worth exploring.\n-----------------------------------------------------------------------------------------------------------------\nDisclaimer:\n* The following video abides by the YouTube Community Guideline. The footage used in this video is for educational purposes.\n* The footage used in this video follows the Fair Usage Policy “Under Section 107” of the “Copyright Act 1976”. If you have any copyright issues, please send u (truncated) 10:57:51.865 [debug] QUERY OK source="sources" db=0.1ms idle=201.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:51.866 [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:57:51.866 [debug] QUERY OK source="media_items" db=0.1ms 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 [10173] 10:57:51.866 [debug] Current batch of media processed. Will check again in 1000ms 10:57:52.867 [debug] Current batch of media processed. Will check again in 1000ms 10:57:53.868 [debug] Current batch of media processed. Will check again in 1000ms 10:57:54.869 [debug] Current batch of media processed. Will check again in 1000ms 10:57:55.870 [debug] Current batch of media processed. Will check again in 1000ms 10:57:56.871 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Join EarthRoamer Founder & CEO Bill Swails for an in-depth tour of the exterior features on an EarthRoamer XV-LTS. Discover what makes these hand-built, luxury Xpedition Vehicles so uniquely capable - and comfortable - in all types of weather and terrain.", "duration" => 820, "filename" => "/downloads/Vanlife/2015-01-30 ER XVLT Exterior Tour/ER XVLT Exterior Tour [pHu-PkzA3Cw].mp4", "id" => "pHu-PkzA3Cw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pHu-PkzA3Cw", "playlist_index" => 50, "timestamp" => 1422629623, "title" => "ER XVLT Exterior Tour", "upload_date" => "20150130"} 10:57:56.872 [debug] QUERY OK source="sources" db=0.2ms idle=1317.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:57:56.872 [debug] QUERY OK source="sources" db=0.1ms idle=1317.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:56.872 [debug] QUERY OK source="media_items" db=0.4ms idle=1317.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2015-01-30 14:53:43Z], 10] 10:57:56.874 [debug] QUERY OK source="media_items" db=0.8ms idle=1203.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join EarthRoamer Founder & CEO Bill Swails for an in-depth tour of the exterior features on an EarthRoamer XV-LTS. Discover what makes these hand-built, luxury Xpedition Vehicles so uniquely capable - and comfortable - in all types of weather and terrain.", "ER XVLT Exterior Tour", "a151226d-5934-484c-9ce0-aeca2e7c7b7b", 10, [], 820, false, "pHu-PkzA3Cw", "https://www.youtube.com/watch?v=pHu-PkzA3Cw", 50, "/downloads/Vanlife/2015-01-30 ER XVLT Exterior Tour/ER XVLT Exterior Tour [pHu-PkzA3Cw].mp4", false, false, false, 1, ~U[2015-01-30 14:53:43Z], ~U[2026-07-11 14:57:56Z], ~U[2026-07-11 14:57:56Z], "Join EarthRoamer Founder & CEO Bill Swails for an in-depth tour of the exterior features on an EarthRoamer XV-LTS. Discover what makes these hand-built, luxury Xpedition Vehicles so uniquely capable - and comfortable - in all types of weather and terrain.", "ER XVLT Exterior Tour", 10, 820, false, "pHu-PkzA3Cw", "https://www.youtube.com/watch?v=pHu-PkzA3Cw", "/downloads/Vanlife/2015-01-30 ER XVLT Exterior Tour/ER XVLT Exterior Tour [pHu-PkzA3Cw].mp4", false, ~U[2015-01-30 14:53:43Z]] 10:57:56.874 [debug] QUERY OK source="sources" db=0.1ms idle=203.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:57:56.874 [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] 10:57:56.875 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10175] 10:57:56.875 [debug] Current batch of media processed. Will check again in 1000ms 10:57:57.875 [debug] Current batch of media processed. Will check again in 1000ms 10:57:58.876 [debug] Current batch of media processed. Will check again in 1000ms 10:57:59.877 [debug] Current batch of media processed. Will check again in 1000ms 10:58:00.202 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:58:00.472 [info] {"source":"oban","duration":590,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:58:00.878 [debug] Current batch of media processed. Will check again in 1000ms 10:58:01.879 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The EarthRoamer team prepared and cooked an entire Thanksgiving dinner in our demo Roamer - no shore power, no generator, 100% off-the-grid! Check out the powerful and efficient space inside an EarthRoamer!", "duration" => 262, "filename" => "/downloads/Vanlife/2014-11-26 An EarthRoamer Thanksgiving/An EarthRoamer Thanksgiving [33qZ3foVqi4].mp4", "id" => "33qZ3foVqi4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=33qZ3foVqi4", "playlist_index" => 51, "timestamp" => 1417027153, "title" => "An EarthRoamer Thanksgiving", "upload_date" => "20141126"} 10:58:01.880 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1325.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:58:01.881 [debug] QUERY OK source="sources" db=0.0ms idle=1205.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:01.881 [debug] QUERY OK source="media_items" db=0.3ms idle=326.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2014-11-26 18:39:13Z], 10] 10:58:01.882 [debug] QUERY OK source="media_items" db=0.5ms idle=327.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The EarthRoamer team prepared and cooked an entire Thanksgiving dinner in our demo Roamer - no shore power, no generator, 100% off-the-grid! Check out the powerful and efficient space inside an EarthRoamer!", "An EarthRoamer Thanksgiving", "9b0d91f9-9f44-4a08-af37-ea92caecb88d", 10, [], 262, false, "33qZ3foVqi4", "https://www.youtube.com/watch?v=33qZ3foVqi4", 51, "/downloads/Vanlife/2014-11-26 An EarthRoamer Thanksgiving/An EarthRoamer Thanksgiving [33qZ3foVqi4].mp4", false, false, false, 1, ~U[2014-11-26 18:39:13Z], ~U[2026-07-11 14:58:01Z], ~U[2026-07-11 14:58:01Z], "The EarthRoamer team prepared and cooked an entire Thanksgiving dinner in our demo Roamer - no shore power, no generator, 100% off-the-grid! Check out the powerful and efficient space inside an EarthRoamer!", "An EarthRoamer Thanksgiving", 10, 262, false, "33qZ3foVqi4", "https://www.youtube.com/watch?v=33qZ3foVqi4", "/downloads/Vanlife/2014-11-26 An EarthRoamer Thanksgiving/An EarthRoamer Thanksgiving [33qZ3foVqi4].mp4", false, ~U[2014-11-26 18:39:13Z]] 10:58:01.882 [debug] QUERY OK source="sources" db=0.1ms idle=205.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:01.882 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:58:01.883 [debug] QUERY OK source="media_items" db=0.2ms idle=1.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10177] 10:58:01.883 [debug] Current batch of media processed. Will check again in 1000ms 10:58:02.883 [debug] Current batch of media processed. Will check again in 1000ms 10:58:03.884 [debug] Current batch of media processed. Will check again in 1000ms 10:58:04.885 [debug] Current batch of media processed. Will check again in 1000ms 10:58:05.886 [debug] Current batch of media processed. Will check again in 1000ms 10:58:06.887 [debug] Current batch of media processed. Will check again in 1000ms 10:58:07.889 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The newest EarthRoamer model represents the epitome of XV innovation, integrating the best qualities of LTS and HD while introducing concepts that have never been seen before among Xpedition vehicles. Its carbon-fiber vacuum infused camper body, lithium-ion battery bank, bunk side windows, and increased interior height are all built on the Ford F-550 chassis that we know and love. This fully-equipped, ultimate off-road camper is the most advanced EarthRoamer XV ever made and comes ready to hit the road, or the terrain of your choosing, the moment we hand you the keys.\n\nEven though the advances in the LTi are, in many cases, revolutionary, there are also many evolutionary changes. We don’t make changes for the sake of making changes — we make changes that truly enhance or improve upon the LT’s mission of providing fully self-contained, luxury off-grid living in a robust overland vehicle. The fundamental design of the original LT is carried on in the latest LTi design, but many attributes of the design have been improved and advanced using the latest technologies available today. \n\nCheck out some of the LTi specs below:\n\nChassis\nFord F-550 4WD\nTrim: Lariat\nEngine: 6.7L Turbo Diesel\nHorsepower: 330\nTorque: 750\nTransmission: 10-Speed Automatic\nEarthRoamer Designed Rear Pivot Camper Mounting System\n\nDimensions\nLength: 29′\nWidth: 8′\nMax Height: 12′\nMin Height: 11’6″\nApproach Angle: 30°\nDeparture Angle: 22°\nBreakover Angle: 14°\nGround Clearance: 12.5\"\n\nCapacities\nFuel: 95 Gallons\nFresh Water: 100 Gallons\nGrey Water: 40 Gallons\nBlack Water Cassette: 5 Gallons\nBatteries: 11,000 Watt Hours\nSolar: 1,300 Watts\nSeating: Up to 6 People\nSleeping: Up to 4 People\n\nFor more information, give us a call at 303-833-7330 or send us an email at info@earthroamer.com.\n\n\nVideo by: Keith Potter and Boulder Media House", "duration" => 935, "filename" => "/downloads/Vanlife/2020-04-16 EarthRoamer LTi Exterior Walkthrough/EarthRoamer LTi Exterior Walkthrough [v4kCVrk5jGM].mkv", "id" => "v4kCVrk5jGM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=v4kCVrk5jGM", "playlist_index" => 52, "timestamp" => 1587067215, "title" => "EarthRoamer LTi Exterior Walkthrough", "upload_date" => "20200416"} 10:58:07.889 [debug] QUERY OK source="sources" db=0.1ms idle=334.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:58:07.890 [debug] QUERY OK source="sources" db=0.1ms idle=335.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:07.890 [debug] QUERY OK source="media_items" db=0.4ms idle=335.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-04-16 20:00:15Z], 10] 10:58:07.891 [debug] QUERY OK source="media_items" db=0.9ms idle=336.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The newest EarthRoamer model represents the epitome of XV innovation, integrating the best qualities of LTS and HD while introducing concepts that have never been seen before among Xpedition vehicles. Its carbon-fiber vacuum infused camper body, lithium-ion battery bank, bunk side windows, and increased interior height are all built on the Ford F-550 chassis that we know and love. This fully-equipped, ultimate off-road camper is the most advanced EarthRoamer XV ever made and comes ready to hit the road, or the terrain of your choosing, the moment we hand you the keys.\n\nEven though the advances in the LTi are, in many cases, revolutionary, there are also many evolutionary changes. We don’t make changes for the sake of making changes — we make changes that truly enhance or improve upon the LT’s mission of providing fully self-contained, luxury off-grid living in a robust overland vehicle. The fundamental design of the original LT is carried on in the latest LTi design, but many attributes of the design have been improved and advanced using the latest technologies available today. \n\nCheck out some of the LTi specs below:\n\nChassis\nFord F-550 4WD\nTrim: Lariat\nEngine: 6.7L Turbo Diesel\nHorsepower: 330\nTorque: 750\nTransmission: 10-Speed Automatic\nEarthRoamer Designed Rear Pivot Camper Mounting System\n\nDimensions\nLength: 29′\nWidth: 8′\nMax Height: 12′\nMin Height: 11’6″\nApproach Angle: 30°\nDeparture Angle: 22°\nBreakover Angle: 14°\nGround Clearance: 12.5\"\n\nCapacities\nFuel: 95 Gallons\nFresh Water: 100 Gallons\nGrey Water: 40 Gallons\nBlack Water Cassette: 5 Gallons\nBatteries: 11,000 Watt Hours\nSolar: 1,300 Watts\nSeating: Up to 6 People\nSleeping: Up to 4 People\n\nFor more information, give us a call at 303-833-7330 or send us an email at info@earthroamer.com.\n\n\nVideo by: Keith Potter and Boulder Media House", "EarthRoamer LTi Exterior Walkthrough", "22730b0e-efe4-437a-81db-b0bf422f38c7", 10, [], 935, false, "v4kCVrk5jGM", "https://www.youtube.com/watch?v=v4kCVrk5jGM", 52, "/downloads/Vanlife/2020-04-16 EarthRoamer LTi Exterior Walkthrough/EarthRoamer LTi Exterior Walkthrough [v4kCVrk5jGM].mkv", false, false, false, 1, ~U[2020-04-16 20:00:15Z], ~U[2026-07-11 14:58:07Z], ~U[2026-07-11 14:58:07Z], "The newest EarthRoamer model represents the epitome of XV innovation, integrating the best qualities of LTS and HD while introducing concepts that have never been seen before among Xpedition vehicles. Its carbon-fiber vacuum infused camper body, lithium-ion battery bank, bunk side windows, and increased interior height are all built on the Ford F-550 chassis that we know and love. This fully-equipped, ultimate off-road camper is the most advanced EarthRoamer XV ever made and comes ready to hit the road, or the terrain of your choosing, the moment we hand you the keys.\n\nEven though the advances in the LTi are, in many cases, revolutionary, there are also many evolutionary changes. We don’t make changes for the sake of making changes — we make changes that truly enhance or improve upon the LT’s mission of providing fully self-contained, luxury off-grid living in a robust overland vehicle. The fundamental design of the original LT is carried on in the latest LTi design, but many attributes of the design have been improved and advanced using the latest technologies available today. \n\nCheck out some of the LTi specs below:\n\nChassis\nFord F-550 4WD\nTrim: Lariat\nEngine: 6.7L Turbo Diesel\nHorsepower: 330\nTorque: 750\nTransmission: 10-Speed Automatic\nEarthRoamer Designed Rear Pivot Camper Mounting System\n\nDimensions\nLength: 29′\nWidth: 8′\nMax Height: 12′\nMin Height: 11’6″\nApproach Angle: 30°\nDeparture Angle: 22°\nBreakover Angle: 14°\nGround Clearance: 12.5\"\n\nCapacities\nFuel: 95 Gallons\nFresh Water: 100 Gallons\nGrey Water: 40 Gallons\nBlack Water Cassette: 5 Gallons\nBatteries: 11,000 Watt Hours\nSolar: 1,300 Watts\nSeating: Up to 6 People\nSleeping: Up to 4 People\n\nFor more information, give us a call at 303-833-7330 or send us an email at info@earthroamer.com.\n\n\nVideo by: Keith Potter and Boulder Media House", "EarthRoamer LTi Exterior Walkthrough", 10, 935, false, "v4kCVrk5jGM", "https://www.youtube.com/watch?v=v4kCVrk5jGM", "/downloads/Vanlife/2020-04-16 EarthRoamer LTi Exterior Walkthrough/EarthRoamer LTi Exterior Walkthrough [v4kCVrk5jGM].mkv", false, ~U[2020-04-16 20:00:15Z]] 10:58:07.892 [debug] QUERY OK source="sources" db=0.1ms idle=207.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:07.892 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:58:07.892 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10178] 10:58:07.892 [debug] Current batch of media processed. Will check again in 1000ms 10:58:08.893 [debug] Current batch of media processed. Will check again in 1000ms 10:58:09.894 [debug] Current batch of media processed. Will check again in 1000ms 10:58:10.895 [debug] Current batch of media processed. Will check again in 1000ms 10:58:11.896 [debug] Current batch of media processed. Will check again in 1000ms 10:58:12.897 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Multi night solo winter camping in Idaho! Big thanks to Huckberry for sponsoring this video: https://glnk.io/drewsimms #huckberry #onestopmensshop\n\nGarmin Tread XL - https://www.garmin.com/es-AR/p/732617\nGarmin Tread XL - https://amzn.to/41aX0FK\n\nOoni pizza oven - https://amzn.to/4aDsjx3\n\nInstagram - https://www.instagram.com/drew.simms/\nContact - drewsimmsphotography@gmail.com\nHOW I FIND CAMPING: https://rb.gy/yuz8yo - 30 Day FREE trial of the DYRT PRO with code \"drew\"\n\nEssential Camera Gear: \nSony A7siii - https://amzn.to/4faWT29\nDRONE - DJI Mavic 3 Pro -https://amzn.to/3ArC2cm\nSony 16-35mm f2.8 - https://amzn.to/4eNCKj7\nSony 70 -200mm 2.8 - https://amzn.to/4f6Dnnx\nSony 100-400mm - https://amzn.to/3NuB4Px\nPeak Design Tripod - https://amzn.to/4eND15D\nFavorite Hard Drive - https://amzn.to/40hRMZI\n\nTruck Built By:\n\nMountain Yotas - https://bit.ly/3Tg1s3r\nFour Wheel Campers website: https://bit.ly/4acwoqM\"\nLong Range America Fuel Tanks USE CODE “DREW”- https://rb.gy/gvmzx9\nGoat Shocks - https://bit.ly/3t9S8Ud \n10% OFF Backwoods with code \"DREWSIMMS\" - https://rb.gy/3f3ic7\nDakota Lithium 135ah Batteries - https://dakotalithium.com/dl5/DrewSimms/\nRedarc Power System -\nhttps://www.redarcelectronics.com/us/\n\nLINKS to the rest of my truck, camper, photography and camping gear\nhttps://www.drewsimms.com/gear\n\nI find all my songs on Musicbed! Elevate your videos with record-label quality music: https://fm.pxf.io/oekJ1o", "duration" => 3078, "filename" => "/downloads/Vanlife/2025-01-30 Solo Winter Camping in My Custom Truck Camper/Solo Winter Camping in My Custom Truck Camper [5yJA3BX-JZo].mkv", "id" => "5yJA3BX-JZo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5yJA3BX-JZo", "playlist_index" => 53, "timestamp" => 1738263606, "title" => "Solo Winter Camping in My Custom Truck Camper", "upload_date" => "20250130"} 10:58:12.898 [debug] QUERY OK source="sources" db=0.1ms idle=1343.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:58:12.898 [debug] QUERY OK source="sources" db=0.1ms idle=1343.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:12.898 [debug] QUERY OK source="media_items" db=0.3ms idle=1343.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-30 19:00:06Z], 10] 10:58:12.902 [debug] QUERY OK source="media_items" db=2.8ms idle=1210.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Multi night solo winter camping in Idaho! Big thanks to Huckberry for sponsoring this video: https://glnk.io/drewsimms #huckberry #onestopmensshop\n\nGarmin Tread XL - https://www.garmin.com/es-AR/p/732617\nGarmin Tread XL - https://amzn.to/41aX0FK\n\nOoni pizza oven - https://amzn.to/4aDsjx3\n\nInstagram - https://www.instagram.com/drew.simms/\nContact - drewsimmsphotography@gmail.com\nHOW I FIND CAMPING: https://rb.gy/yuz8yo - 30 Day FREE trial of the DYRT PRO with code \"drew\"\n\nEssential Camera Gear: \nSony A7siii - https://amzn.to/4faWT29\nDRONE - DJI Mavic 3 Pro -https://amzn.to/3ArC2cm\nSony 16-35mm f2.8 - https://amzn.to/4eNCKj7\nSony 70 -200mm 2.8 - https://amzn.to/4f6Dnnx\nSony 100-400mm - https://amzn.to/3NuB4Px\nPeak Design Tripod - https://amzn.to/4eND15D\nFavorite Hard Drive - https://amzn.to/40hRMZI\n\nTruck Built By:\n\nMountain Yotas - https://bit.ly/3Tg1s3r\nFour Wheel Campers website: https://bit.ly/4acwoqM\"\nLong Range America Fuel Tanks USE CODE “DREW”- https://rb.gy/gvmzx9\nGoat Shocks - https://bit.ly/3t9S8Ud \n10% OFF Backwoods with code \"DREWSIMMS\" - https://rb.gy/3f3ic7\nDakota Lithium 135ah Batteries - https://dakotalithium.com/dl5/DrewSimms/\nRedarc Power System -\nhttps://www.redarcelectronics.com/us/\n\nLINKS to the rest of my truck, camper, photography and camping gear\nhttps://www.drewsimms.com/gear\n\nI find all my songs on Musicbed! Elevate your videos with record-label quality music: https://fm.pxf.io/oekJ1o", "Solo Winter Camping in My Custom Truck Camper", "d9c1a52d-6dee-450c-b3e8-4a3e48f1355b", 10, [], 3078, false, "5yJA3BX-JZo", "https://www.youtube.com/watch?v=5yJA3BX-JZo", 53, "/downloads/Vanlife/2025-01-30 Solo Winter Camping in My Custom Truck Camper/Solo Winter Camping in My Custom Truck Camper [5yJA3BX-JZo].mkv", false, false, false, 1, ~U[2025-01-30 19:00:06Z], ~U[2026-07-11 14:58:12Z], ~U[2026-07-11 14:58:12Z], "Multi night solo winter camping in Idaho! Big thanks to Huckberry for sponsoring this video: https://glnk.io/drewsimms #huckberry #onestopmensshop\n\nGarmin Tread XL - https://www.garmin.com/es-AR/p/732617\nGarmin Tread XL - https://amzn.to/41aX0FK\n\nOoni pizza oven - https://amzn.to/4aDsjx3\n\nInstagram - https://www.instagram.com/drew.simms/\nContact - drewsimmsphotography@gmail.com\nHOW I FIND CAMPING: https://rb.gy/yuz8yo - 30 Day FREE trial of the DYRT PRO with code \"drew\"\n\nEssential Camera Gear: \nSony A7siii - https://amzn.to/4faWT29\nDRONE - DJI Mavic 3 Pro -https://amzn.to/3ArC2cm\nSony 16-35mm f2.8 - https://amzn.to/4eNCKj7\nSony 70 -200mm 2.8 - https://amzn.to/4f6Dnnx\nSony 100-400mm - https://amzn.to/3NuB4Px\nPeak Design Tripod - https://amzn.to/4eND15D\nFavorite Hard Drive - https://amzn.to/40hRMZI\n\nTruck Built By:\n\nMountain Yotas - https://bit.ly/3Tg1s3r\nFour Wheel Campers website: https://bit.ly/4acwoqM\"\nLong Range America Fuel Tanks USE CODE “DREW”- https://rb.gy/gvmzx9\nGoat Shocks - https://bit.ly/3t9S8Ud \n10% OFF Backwoods with code \"DREWSIMMS\" - https://rb.gy/3f3ic7\nDakota Lithium 135ah Batteries - https://dakotalithium.com/dl5/DrewSimms/\nRedarc Power System -\nhttps://www.redarcelectronics.com/us/\n\nLINKS to the rest of my truck, camper, photography and camping gear\nhttps://www.drewsimms.com/gear\n\nI find all my songs on Musicbed! Elevate your videos with record-label quality music: https://fm.pxf.io/oekJ1o", "Solo Winter Camping in My Custom Truck Camper", 10, 3078, false, "5yJA3BX-JZo", "https://www.youtube.com/watch?v=5yJA3BX-JZo", "/downloads/Vanlife/2025-01-30 Solo Winter Camping in My Custom Truck Camper/Solo Winter Camping in My Custom Truck Camper [5yJA3BX-JZo].mkv", false, ~U[2025-01-30 19:00:06Z]] 10:58:12.902 [debug] QUERY OK source="sources" db=0.1ms idle=212.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:12.902 [debug] QUERY OK source="media_profiles" db=0.0ms 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:58:12.902 [debug] QUERY OK source="media_items" db=0.1ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10180] 10:58:12.902 [debug] Current batch of media processed. Will check again in 1000ms 10:58:13.903 [debug] Current batch of media processed. Will check again in 1000ms 10:58:14.904 [debug] Current batch of media processed. Will check again in 1000ms 10:58:15.905 [debug] Current batch of media processed. Will check again in 1000ms 10:58:16.906 [debug] Current batch of media processed. Will check again in 1000ms 10:58:17.907 [debug] Current batch of media processed. Will check again in 1000ms 10:58:18.908 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "17 RV overnighters better than Walmart - Big 2023 Changes! (RV Life) Welcome to our latest RV life vlog showcasing 17 incredible RV overnight parking options for RVers in 2023 that are much better than Walmart. If you're tired of RV camping in cramped parking lots and are looking for unique, safe, and affordable RV overnighters, then this video is a must-watch.\n\nIn this video, we'll be highlighting a range of options that cater to every type of RVer. We've got you covered with a range of overnighters. These incredible overnight parking options are sure to make your RV life more exciting and enjoyable. So join us on this journey and discover some of the best places to park your RV overnight in 2023. Don't forget to subscribe to our channel for more amazing RV life content.\n\nBe a part of the most genuine and supportive Las Vegas and Travel community around by joining the TIUW Insiders on ❤️ Patreon \n\n👉 https://www.patreon.com/turnitupworld (Get AD FREE TIUW Videos, Exclusive Merch and Content, access to the secret Facebook group, your name in our videos, meet-up invites, and monthly livestreams and more.) \n\n ► 🔴 If you're new, Subscribe! →: https://bit.ly/3yTFUiv\n\n #rvlife #rvliving #rv\n\n📷 🎒 Our GEAR and More:\n(Buying through these affiliate links, you'll be supporting this channel)\nhttps://www.amazon.com/shop/turnitupworld\n🚲 -Our E-BIKES are Lectric Bikes More info here 👉 https://lectricebikes.sjv.io/rnjXvd\n____________\n\nAdditional Ways to Support TIUW:\n🥰New Merch:\n👉 https://turnitupworld.creator-spring.com/\n\n 🪙 - Donate via paypal\nhttps://paypal.me/turnitupworld \n\n📧 Sign up to our Ultimate Newsletter\nhttps://www.turnitupworld.com/newsletter\n\n📬 - Send us some Fam mail: \nTurn It Up World\nP.O. Box 20220\nLas Vegas, NV 89112\nThank you for joining us!\n\n__________\n►If you're new, Subscribe! →: https://bit.ly/3yTFUiv\n\nWATCH NEXT: ▶️ BINGE WATCH TURN IT UP WORLD from the Beginning! \n► https://www.youtube.com/playlist?list=PLjH5Y1UZk8pzgVDrEz_cnRx19GdFFzdXx\n\n* WHERE WE GET ALL OF OUR MUSIC*\nhttps://www.epidemicsound.com/referral/8l4dec/\n\n====Follow Us====\n👍 Instagram - http://www.instagram.com/turnitupworld\n👍Facebook- https://www.facebook.com/turnitupworld\n👍Twitter - http://www.twitter.com/turnitupworld\n_ __ _ _ _ _ _ _ _ _ _ \n\n📷 🎒 Our GEAR and More:\n(Buying through these affiliate links, you'll be supporting this channel)\nhttps://www.amazon.com/shop/turnitupworld\n____________\n\nNew to Airbnb? Save $40 when you sign up with our link. We'll get a $20 credit. YAY!! \nhttps://www.airbnb.com/c/tanyav627?currency=USD\n\nAwesome Travel Credit Card with great travel perks we use all the time:\nAmerican Express Platinum - Apply for an American Express Card with this link. We can both get rewarded if you're approved! \nApply for an American Express Card with this link. We can both get rewarded if you're approved! http://refer.amex.us/TANYAVMdVW?xl=cp15\n\n**We ONLY include affiliate links for products we use, trust and absolutely love. If you make a purchase after clicking on our links, we may earn a commission which helps us continue our travels and produce more videos.**\n\n🙋🏾\u200D♀️ About Us🙋🏻\u200D♂️\n\nWe're Tanya and Dave. Mr. and Mrs. World Traveler. We not only share the same birthday..I know right!... We share the same passion for travel and encouraging others to do the same. This channel for entertainment purposes only. We are not experts and are not making recommendations. We share our opinions and what works for us, but definitely do your own research and make your own decisions. \n©All uploads are our intellectual property. You do not have permission to re-use any part of them without our written consent.", "duration" => 854, "filename" => "/downloads/Vanlife/2023-02-21 17 RV Overnighters Better than Walmart - BIG 2023 Changes! (RV Life)/17 RV Overnighters Better than Walmart - BIG 2023 Changes! (RV Life) [zCcwo63hpWs].mp4", "id" => "zCcwo63hpWs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zCcwo63hpWs", "playlist_index" => 54, "timestamp" => 1677016834, "title" => "17 RV Overnighters Better than Walmart - BIG 2023 Changes! (RV Life)", "upload_date" => "20230221"} 10:58:18.909 [debug] QUERY OK source="sources" db=0.1ms idle=354.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:58:18.909 [debug] QUERY OK source="sources" db=0.1ms idle=354.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:18.910 [debug] QUERY OK source="media_items" db=0.5ms idle=355.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-21 22:00:34Z], 10] 10:58:18.915 [debug] QUERY OK source="media_items" db=4.5ms idle=356.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["17 RV overnighters better than Walmart - Big 2023 Changes! (RV Life) Welcome to our latest RV life vlog showcasing 17 incredible RV overnight parking options for RVers in 2023 that are much better than Walmart. If you're tired of RV camping in cramped parking lots and are looking for unique, safe, and affordable RV overnighters, then this video is a must-watch.\n\nIn this video, we'll be highlighting a range of options that cater to every type of RVer. We've got you covered with a range of overnighters. These incredible overnight parking options are sure to make your RV life more exciting and enjoyable. So join us on this journey and discover some of the best places to park your RV overnight in 2023. Don't forget to subscribe to our channel for more amazing RV life content.\n\nBe a part of the most genuine and supportive Las Vegas and Travel community around by joining the TIUW Insiders on ❤️ Patreon \n\n👉 https://www.patreon.com/turnitupworld (Get AD FREE TIUW Videos, Exclusive Merch and Content, access to the secret Facebook group, your name in our videos, meet-up invites, and monthly livestreams and more.) \n\n ► 🔴 If you're new, Subscribe! →: https://bit.ly/3yTFUiv\n\n #rvlife #rvliving #rv\n\n📷 🎒 Our GEAR and More:\n(Buying through these affiliate links, you'll be supporting this channel)\nhttps://www.amazon.com/shop/turnitupworld\n🚲 -Our E-BIKES are Lectric Bikes More info here 👉 https://lectricebikes.sjv.io/rnjXvd\n____________\n\nAdditional Ways to Support TIUW:\n🥰New Merch:\n👉 https://turnitupworld.creator-spring.com/\n\n 🪙 - Donate via paypal\nhttps://paypal.me/turnitupworld \n\n📧 Sign up to our Ultimate Newsletter\nhttps://www.turnitupworld.com/newsletter\n\n📬 - Send us some Fam mail: \nTurn It Up World\nP.O. Box 20220\nLas Vegas, NV 89112\nThank you for joining us!\n\n__________\n►If you're new, Subscribe! →: https://bit.ly/3yTFUiv\n\nWATCH NEXT: ▶️ BINGE WATCH TURN IT UP WORLD from the Beginning! \n► https://www.youtube.com/playlist?list=PLjH5Y1UZk8pzgVDrEz_cnRx19GdFFzdXx\n\n* WHERE WE GET ALL OF OUR MUSIC*\nhttps://www.epidemicsound.com/referral/8l4dec/\n\n====Follow Us====\n👍 Instagram - http://www.instagram.com/turnitupworld\n👍Facebook- https://www.facebook.com/turnitupworld\n👍Twitter - http://www.twitter.com/turnitupworld\n_ __ _ _ _ _ _ _ _ _ _ \n\n📷 🎒 Our GEAR and More:\n(Buying through these affiliate links, you'll be supporting this channel)\nhttps://www.amazon.com/shop/turnitupworld\n____________\n\nNew to Airbnb? Save $40 when you sign up with our link. We'll get a $20 credit. YAY!! \nhttps://www.airbnb.com/c/tanyav627?currency=USD\n\nAwesome Travel Credit Card with great travel perks we use all the time:\nAmerican Express Platinum - Apply for an American Express Card with this link. We can both get rewarded if you're approved! \nApply for an American Express Card with this link. We can both get rewarded if you're approved! http://refer.amex.us/TANYAVMdVW?xl=cp15\n\n**We ONLY include affiliate links for products we use, trust and absolutely love. If you make a purchase after clicking on our links, we may earn a commission which helps us continue our travels and produce more videos.**\n\n🙋🏾\u200D♀️ About Us🙋🏻\u200D♂️\n\nWe're Tanya and Dave. Mr. and Mrs. World Traveler. We not only share the same birthday..I know right!... We share the same passion for travel and encouraging others to do the same. This channel for entertainment purposes only. We are not experts and are not making recommendations. We share our opinions and what works for us, but definitely do your own research and make your own decisions. \n©All uploads are our intellectual property. You do not have permission to re-use any part of them without our written consent.", "17 RV Overnighters Better than Walmart - BIG 2023 Changes! (RV Life)", "c8dbd3b7-de59-4a1a-ae9e-5b4007d89eac", 10, [], 854, false, "zCcwo63hpWs", "https://www.youtube.com/watch?v=zCcwo63hpWs", 54, "/downloads/Vanlife/2023-02-21 17 RV Overnighters Better than Walmart - BIG 2023 Changes! (RV Life)/17 RV Overnighters Better than Walmart - BIG 2023 Changes! (RV Life) [zCcwo63hpWs].mp4", false, false, false, 1, ~U[2023-02-21 22:00:34Z], ~U[2026-07-11 14:58:18Z], ~U[2026-07-11 14:58:18Z], "17 RV overnighters better than Walmart - Big 2023 Changes! (RV Life) Welcome to our latest RV life vlog showcasing 17 incredible RV overnight parking options for RVers in 2023 that are much better than Walmart. If you're tired of RV camping in cramped parking lots and are looking for unique, safe, and affordable RV overnighters, then this video is a must-watch.\n\nIn this video, we'll be highlighting a range of options that cater to every type of RVer. We've got you covered with a range of overnighters. These incredible overnight parking options are sure to make your RV life more exciting and enjoyable. So join us on this journey and discover some of the best places to park your RV overnight in 2023. Don't forget to subscribe to our channel for more amazing RV life content.\n\nBe a part of the most genuine and supportive Las Vegas and Travel community around by joining the TIUW Insiders on ❤️ Patreon \n\n👉 https://www.patreon.com/turnitupworld (Get AD FREE TIUW Videos, Exclusive Merch and Content, access to the secret Facebook group, your name in our videos, meet-up invites, and monthly livestreams and more.) \n\n ► 🔴 If you're new, Subscribe! →: https://bit.ly/3yTFUiv\n\n #rvlife #rvliving #rv\n\n📷 🎒 Our GEAR and More:\n(Buying through these affiliate links, you'll be supporting this channel)\nhttps://www.amazon.com/shop/turnitupworld\n🚲 -Our E-BIKES are Lectric Bikes More info here 👉 https://lectricebikes.sjv.io/rnjXvd\n____________\n\nAdditional Ways to Support TIUW:\n🥰New Merch:\n👉 https://turnitupworld.creator-spring.com/\n\n 🪙 - Donate via paypal\nhttps://paypal.me/turnitupworld \n\n📧 Sign up to our Ultimate Newsletter\nhttps://www.turnitupworld.com/newsletter\n\n📬 - Send us some Fam mail: \nTurn It Up World\nP.O. Box 20220\nLas Vegas, NV 89112\nThank you for joining us!\n\n__________\n►If you're new, Subscribe! →: https://bit.ly/3yTFUiv\n\nWATCH NEXT: ▶️ BINGE WATCH TURN IT UP WORLD from the Beginning! \n► https://www.youtube.com/playlist?list=PLjH5Y1UZk8pzgVDrEz_cnRx19GdFFzdXx\n\n* WHERE WE GET ALL OF OUR MUSIC*\nhttps://www.epidemicsound.com/referral/8l4dec/\n\n====Follow Us====\n👍 Instagram - http://www.instagram.com/turnitupworld\n👍Facebook- https://www.facebook.com/turnitupworld\n👍Twitter - http://www.twitter.com/turnitupworld\n_ __ _ _ _ _ _ _ _ _ _ \n\n📷 🎒 Our GEAR and More:\n(Buying through these affiliate links, you'll be supporting this channel)\nhttps://www.amazon.com/shop/turnitupworld\n____________\n\nNew to Airbnb? Save $40 when you sign up with our link. We'll get a $20 credit. YAY!! \nhttps://www.airbnb.com/c/tanyav627?currency=USD\n\nAwesome Travel Credit Card with great travel perks we use all the time:\nAmerican Express Platinum - Apply for an American Express Card with this link. We can both get rewarded if you're approved! \nApply for an American Express Card with this link. We can both get rewarded if you're approved! http://refer.amex.us/TANYAVMdVW?xl=cp15\n\n**We ONLY include affiliate links for products we use, (truncated) 10:58:18.915 [debug] QUERY OK source="sources" db=0.2ms idle=219.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:18.916 [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] 10:58:18.916 [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 [10182] 10:58:18.916 [debug] Current batch of media processed. Will check again in 1000ms 10:58:19.917 [debug] Current batch of media processed. Will check again in 1000ms 10:58:20.918 [debug] Current batch of media processed. Will check again in 1000ms 10:58:21.919 [debug] Current batch of media processed. Will check again in 1000ms 10:58:22.920 [debug] Current batch of media processed. Will check again in 1000ms 10:58:23.921 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "When living in a car, finding the perfect sleeping spot can make all the difference in ensuring a restful night's sleep. As someone who understands the importance of a good night's sleep while on the road, I share my personal insights and recommendations to help you find ultimate comfort and serenity. I've carefully curated this list to ensure you wake up refreshed and ready for adventure. Get ready to elevate your sleep game and embrace the joy of a peaceful slumber amidst breathtaking surroundings.\n\nBe part of the SNACK SQUAD! Exclusive behind the scenes content. \nbit.ly/snacksquadmember\n\nFind this content helpful or entertaining? \n ► One Time Donation (for gas, repairs or coffee!)\n PayPal: https://paypal.me/allisonsharpe\n Cash App: https://cash.app/$travelsnacks\n Venmo: https://venmo.com/travelsnacks_\n\n► SUPPORT FOR FREE by shopping on Amazon:\n https://amzn.to/35zqsXA\n\n▼ CONNECT WITH ALLISON\n Official Site → https://allisonsharpe.com\n Instagram → https://instagram.com/travelsnacks_\n TikTok → https://tiktok.com/@travelsnacks\n YouTube → https://youtube.com/c/travelsnacks\n\n#livinginavan #solofemalenomad #vanlife\n\nMusic: \nTravel Snacks Theme Song: Vocals -Allison Sharpe, Music - Quincas Moreira\nAll music from: YouTube Audio Library or Epidemic Sound\n\nDisclaimer: Product links may be affiliate links to products/services I've personally used and enjoyed. This helps support the channel with no extra cost to you. Thanks!", "duration" => 1337, "filename" => "/downloads/Vanlife/2023-05-26 Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫/Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫 [ZnpT_vD3Ujs].mp4", "id" => "ZnpT_vD3Ujs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZnpT_vD3Ujs", "playlist_index" => 55, "timestamp" => 1685144937, "title" => "Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫", "upload_date" => "20230526"} 10:58:23.922 [debug] QUERY OK source="sources" db=0.1ms idle=1367.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:58:23.922 [debug] QUERY OK source="sources" db=0.0ms idle=1367.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:23.922 [debug] QUERY OK source="media_items" db=0.4ms idle=1367.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-05-26 23:48:57Z], 10] 10:58:23.924 [debug] QUERY OK source="media_items" db=1.1ms idle=1223.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["When living in a car, finding the perfect sleeping spot can make all the difference in ensuring a restful night's sleep. As someone who understands the importance of a good night's sleep while on the road, I share my personal insights and recommendations to help you find ultimate comfort and serenity. I've carefully curated this list to ensure you wake up refreshed and ready for adventure. Get ready to elevate your sleep game and embrace the joy of a peaceful slumber amidst breathtaking surroundings.\n\nBe part of the SNACK SQUAD! Exclusive behind the scenes content. \nbit.ly/snacksquadmember\n\nFind this content helpful or entertaining? \n ► One Time Donation (for gas, repairs or coffee!)\n PayPal: https://paypal.me/allisonsharpe\n Cash App: https://cash.app/$travelsnacks\n Venmo: https://venmo.com/travelsnacks_\n\n► SUPPORT FOR FREE by shopping on Amazon:\n https://amzn.to/35zqsXA\n\n▼ CONNECT WITH ALLISON\n Official Site → https://allisonsharpe.com\n Instagram → https://instagram.com/travelsnacks_\n TikTok → https://tiktok.com/@travelsnacks\n YouTube → https://youtube.com/c/travelsnacks\n\n#livinginavan #solofemalenomad #vanlife\n\nMusic: \nTravel Snacks Theme Song: Vocals -Allison Sharpe, Music - Quincas Moreira\nAll music from: YouTube Audio Library or Epidemic Sound\n\nDisclaimer: Product links may be affiliate links to products/services I've personally used and enjoyed. This helps support the channel with no extra cost to you. Thanks!", "Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫", "9d8d6401-9b45-4a6f-a84c-2c98f77d9cba", 10, [], 1337, false, "ZnpT_vD3Ujs", "https://www.youtube.com/watch?v=ZnpT_vD3Ujs", 55, "/downloads/Vanlife/2023-05-26 Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫/Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫 [ZnpT_vD3Ujs].mp4", false, false, false, 1, ~U[2023-05-26 23:48:57Z], ~U[2026-07-11 14:58:23Z], ~U[2026-07-11 14:58:23Z], "When living in a car, finding the perfect sleeping spot can make all the difference in ensuring a restful night's sleep. As someone who understands the importance of a good night's sleep while on the road, I share my personal insights and recommendations to help you find ultimate comfort and serenity. I've carefully curated this list to ensure you wake up refreshed and ready for adventure. Get ready to elevate your sleep game and embrace the joy of a peaceful slumber amidst breathtaking surroundings.\n\nBe part of the SNACK SQUAD! Exclusive behind the scenes content. \nbit.ly/snacksquadmember\n\nFind this content helpful or entertaining? \n ► One Time Donation (for gas, repairs or coffee!)\n PayPal: https://paypal.me/allisonsharpe\n Cash App: https://cash.app/$travelsnacks\n Venmo: https://venmo.com/travelsnacks_\n\n► SUPPORT FOR FREE by shopping on Amazon:\n https://amzn.to/35zqsXA\n\n▼ CONNECT WITH ALLISON\n Official Site → https://allisonsharpe.com\n Instagram → https://instagram.com/travelsnacks_\n TikTok → https://tiktok.com/@travelsnacks\n YouTube → https://youtube.com/c/travelsnacks\n\n#livinginavan #solofemalenomad #vanlife\n\nMusic: \nTravel Snacks Theme Song: Vocals -Allison Sharpe, Music - Quincas Moreira\nAll music from: YouTube Audio Library or Epidemic Sound\n\nDisclaimer: Product links may be affiliate links to products/services I've personally used and enjoyed. This helps support the channel with no extra cost to you. Thanks!", "Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫", 10, 1337, false, "ZnpT_vD3Ujs", "https://www.youtube.com/watch?v=ZnpT_vD3Ujs", "/downloads/Vanlife/2023-05-26 Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫/Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫 [ZnpT_vD3Ujs].mp4", false, ~U[2023-05-26 23:48:57Z]] 10:58:23.924 [debug] QUERY OK source="sources" db=0.1ms idle=223.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:23.925 [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] 10:58:23.925 [debug] QUERY OK source="media_items" db=0.2ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10184] 10:58:23.925 [debug] Current batch of media processed. Will check again in 1000ms 10:58:24.926 [debug] Current batch of media processed. Will check again in 1000ms 10:58:25.927 [debug] Current batch of media processed. Will check again in 1000ms 10:58:26.928 [debug] Current batch of media processed. Will check again in 1000ms 10:58:27.929 [debug] Current batch of media processed. Will check again in 1000ms 10:58:28.930 [debug] Current batch of media processed. Will check again in 1000ms 10:58:29.931 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We are FED UP we are with some RV campgrounds destroying the sense of community and adventure that RV life is all about! \n\nReference Article: https://rvparkiq.com/industry-insights/new-laws-for-campground-owners/ \n\nOur preferred resource for RV accessories is https://gratefulglamper.com/etrailer. Allow their customer support to help you get the right accessory for your specific RV. \n\nThe ONLY 💩 waste tank 🧻 treatments we use and recommend! https://gratefulglamper.com/unique \n\nIntro: 0:00\nRefused: 0:46\nThe Experiment: 1:45\nExcluding Others: 2:30\nEconomic Discrimination 4:07\nRV Mattress: 5:30\nResale Affected: 7:09\nExperiment results: 7:50\nLimited Travel Options: 8:55\n\nWho are the Grateful Glampers? Watch our intro here: https://link.gratefulglamper.com/intro\n🏔 Originally from Colorado, we dreamed of living a travel and adventure lifestyle but stuck in a 9-5 grind, we had no clue how we would break out of the mold. In 2017 we bought our first RV and it all changed! \n✅ If you’d like to learn more, we suggest starting with this playlist from the very beginning of our journey: https://link.gratefulglamper.com/intro\n\n🎒 Want ideas for MUST-have RV gear? Check out our Amazon store! We have idea lists to help you outfit your RV, make RV easier, and more! https://video.gratefulglamper.com/amazon/gratefulglamper\n\nOR Check out all the DEALS we have arranged with our partners on products and services for RV Living and travel: https://gratefulglamper.com/partners/\n\n💙 Grateful Glamper Insiders💙 https://gratefulglamper.com/insiders\nJoin the most amazing RV community ever. Get our welcome pack in the mail, invitations to meet-ups, access to giveaways, and let us follow you in our secret Facebook group with over hundreds of other Insiders. We'd love to get to know you too!\n\n💬Join the conversation with other RVers on our FREE Discord channel! \nhttps://gratefulglamper.com/discord\n\n🌎 Visit our blog for more campground info, Reviews, and RV Living Tips: \nhttps://gratefulglamper.com/blog/\n\n▶︎ Subscribe for more: \nhttps://video.gratefulglamper.com/youtube/channel/followus\n\n▶︎ Grateful Glamper Playlists:\nRV Life Favorites (START HERE) https://link.gratefulglamper.com/rvlifefavorites\n\nRV Tours: https://link.gratefulglamper.com/rvtour\n\nRV Newbies: https://link.gratefulglamper.com/rvnewbies\n\nALL LOCATIONS: https://link.gratefulglamper.com/locations\n\n▶︎Watch more Top Voted Videos from Grateful Glamper: \n10 DIY Organizing Ideas From Ikea! https://link.gratefulglamper.com/ikeaorganization\n\nKicked Out Of Our Campground! \nhttps://link.gratefulglamper.com/kickedout\n\nTop 5 Best Campgrounds In America (MUST SEE Campsites for RV Living) \nhttps://link.gratefulglamper.com/top5campgrounds\n\n📱 UPDATES on Social 📱 \nhttps://link.gratefulglamper.com/facebook\nhttps://link.gratefulglamper.com/instagram\nhttps://link.gratefulglamper.com/youtube\n\nGrateful Glamper, All Rights Reserved\n*This channel is for entertainment purposes only. We are not RV or travel experts. We share our opinions and what works for us, but you should do your own research. #rvlife #rvlivingwithkids #gratefulglamper", "duration" => 667, "filename" => "/downloads/Vanlife/2024-05-26 The Unbelievable Rule That's Destroying The RV Community/The Unbelievable Rule That's Destroying The RV Community [rzvYOd3cv1I].mkv", "id" => "rzvYOd3cv1I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rzvYOd3cv1I", "playlist_index" => 56, "timestamp" => 1716757829, "title" => "The Unbelievable Rule That's Destroying The RV Community", "upload_date" => "20240526"} 10:58:29.932 [debug] QUERY OK source="sources" db=0.1ms idle=377.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:58:29.932 [debug] QUERY OK source="sources" db=0.1ms idle=377.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:29.932 [debug] QUERY OK source="media_items" db=0.4ms idle=377.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-26 21:10:29Z], 10] 10:58:29.935 [debug] QUERY OK source="media_items" db=2.0ms idle=378.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We are FED UP we are with some RV campgrounds destroying the sense of community and adventure that RV life is all about! \n\nReference Article: https://rvparkiq.com/industry-insights/new-laws-for-campground-owners/ \n\nOur preferred resource for RV accessories is https://gratefulglamper.com/etrailer. Allow their customer support to help you get the right accessory for your specific RV. \n\nThe ONLY 💩 waste tank 🧻 treatments we use and recommend! https://gratefulglamper.com/unique \n\nIntro: 0:00\nRefused: 0:46\nThe Experiment: 1:45\nExcluding Others: 2:30\nEconomic Discrimination 4:07\nRV Mattress: 5:30\nResale Affected: 7:09\nExperiment results: 7:50\nLimited Travel Options: 8:55\n\nWho are the Grateful Glampers? Watch our intro here: https://link.gratefulglamper.com/intro\n🏔 Originally from Colorado, we dreamed of living a travel and adventure lifestyle but stuck in a 9-5 grind, we had no clue how we would break out of the mold. In 2017 we bought our first RV and it all changed! \n✅ If you’d like to learn more, we suggest starting with this playlist from the very beginning of our journey: https://link.gratefulglamper.com/intro\n\n🎒 Want ideas for MUST-have RV gear? Check out our Amazon store! We have idea lists to help you outfit your RV, make RV easier, and more! https://video.gratefulglamper.com/amazon/gratefulglamper\n\nOR Check out all the DEALS we have arranged with our partners on products and services for RV Living and travel: https://gratefulglamper.com/partners/\n\n💙 Grateful Glamper Insiders💙 https://gratefulglamper.com/insiders\nJoin the most amazing RV community ever. Get our welcome pack in the mail, invitations to meet-ups, access to giveaways, and let us follow you in our secret Facebook group with over hundreds of other Insiders. We'd love to get to know you too!\n\n💬Join the conversation with other RVers on our FREE Discord channel! \nhttps://gratefulglamper.com/discord\n\n🌎 Visit our blog for more campground info, Reviews, and RV Living Tips: \nhttps://gratefulglamper.com/blog/\n\n▶︎ Subscribe for more: \nhttps://video.gratefulglamper.com/youtube/channel/followus\n\n▶︎ Grateful Glamper Playlists:\nRV Life Favorites (START HERE) https://link.gratefulglamper.com/rvlifefavorites\n\nRV Tours: https://link.gratefulglamper.com/rvtour\n\nRV Newbies: https://link.gratefulglamper.com/rvnewbies\n\nALL LOCATIONS: https://link.gratefulglamper.com/locations\n\n▶︎Watch more Top Voted Videos from Grateful Glamper: \n10 DIY Organizing Ideas From Ikea! https://link.gratefulglamper.com/ikeaorganization\n\nKicked Out Of Our Campground! \nhttps://link.gratefulglamper.com/kickedout\n\nTop 5 Best Campgrounds In America (MUST SEE Campsites for RV Living) \nhttps://link.gratefulglamper.com/top5campgrounds\n\n📱 UPDATES on Social 📱 \nhttps://link.gratefulglamper.com/facebook\nhttps://link.gratefulglamper.com/instagram\nhttps://link.gratefulglamper.com/youtube\n\nGrateful Glamper, All Rights Reserved\n*This channel is for entertainment purposes only. We are not RV or travel experts. We share our opinions and what works for us, but you should do your own research. #rvlife #rvlivingwithkids #gratefulglamper", "The Unbelievable Rule That's Destroying The RV Community", "bb1432d0-ec80-46d6-b97f-a7f95d97a703", 10, [], 667, false, "rzvYOd3cv1I", "https://www.youtube.com/watch?v=rzvYOd3cv1I", 56, "/downloads/Vanlife/2024-05-26 The Unbelievable Rule That's Destroying The RV Community/The Unbelievable Rule That's Destroying The RV Community [rzvYOd3cv1I].mkv", false, false, false, 2, ~U[2024-05-26 21:10:29Z], ~U[2026-07-11 14:58:29Z], ~U[2026-07-11 14:58:29Z], "We are FED UP we are with some RV campgrounds destroying the sense of community and adventure that RV life is all about! \n\nReference Article: https://rvparkiq.com/industry-insights/new-laws-for-campground-owners/ \n\nOur preferred resource for RV accessories is https://gratefulglamper.com/etrailer. Allow their customer support to help you get the right accessory for your specific RV. \n\nThe ONLY 💩 waste tank 🧻 treatments we use and recommend! https://gratefulglamper.com/unique \n\nIntro: 0:00\nRefused: 0:46\nThe Experiment: 1:45\nExcluding Others: 2:30\nEconomic Discrimination 4:07\nRV Mattress: 5:30\nResale Affected: 7:09\nExperiment results: 7:50\nLimited Travel Options: 8:55\n\nWho are the Grateful Glampers? Watch our intro here: https://link.gratefulglamper.com/intro\n🏔 Originally from Colorado, we dreamed of living a travel and adventure lifestyle but stuck in a 9-5 grind, we had no clue how we would break out of the mold. In 2017 we bought our first RV and it all changed! \n✅ If you’d like to learn more, we suggest starting with this playlist from the very beginning of our journey: https://link.gratefulglamper.com/intro\n\n🎒 Want ideas for MUST-have RV gear? Check out our Amazon store! We have idea lists to help you outfit your RV, make RV easier, and more! https://video.gratefulglamper.com/amazon/gratefulglamper\n\nOR Check out all the DEALS we have arranged with our partners on products and services for RV Living and travel: https://gratefulglamper.com/partners/\n\n💙 Grateful Glamper Insiders💙 https://gratefulglamper.com/insiders\nJoin the most amazing RV community ever. Get our welcome pack in the mail, invitations to meet-ups, access to giveaways, and let us follow you in our secret Facebook group with over hundreds of other Insiders. We'd love to get to know you too!\n\n💬Join the conversation with other RVers on our FREE Discord channel! \nhttps://gratefulglamper.com/discord\n\n🌎 Visit our blog for more campground info, Reviews, and RV Living Tips: \nhttps://gratefulglamper.com/blog/\n\n▶︎ Subscribe for more: \nhttps://video.gratefulglamper.com/youtube/channel/followus\n\n▶︎ Grateful Glamper Playlists:\nRV Life Favorites (START HERE) https://link.gratefulglamper.com/rvlifefavorites\n\nRV Tours: https://link.gratefulglamper.com/rvtour\n\nRV Newbies: https://link.gratefulglamper.com/rvnewbies\n\nALL LOCATIONS: https://link.gratefulglamper.com/locations\n\n▶︎Watch more Top Voted Videos from Grateful Glamper: \n10 DIY Organizing Ideas From Ikea! https://link.gratefulglamper.com/ikeaorganization\n\nKicked Out Of Our Campground! \nhttps://link.gratefulglamper.com/kickedout\n\nTop 5 Best Campgrounds In America (MUST SEE Campsites for RV Living) \nhttps://link.gratefulglamper.com/top5campgrounds\n\n📱 UPDATES on Social 📱 \nhttps://link.gratefulglamper.com/facebook\nhttps://link.gratefulglamper.com/instagram\nhttps://link.gratefulglamper.com/youtube\n\nGrateful Glamper, All Rights Reserved\n*This channel is for entertainment purposes only. We are not RV or travel experts. We share our opinions and what works for us, but you should do your own research. #rvlife #rvlivingwithkids #gratefulglamper", "The Unbelievable Rule That's Destroying The RV Community", 10, 667, false, "rzvYOd3cv1I", "https://www.youtube.com/watch?v=rzvYOd3cv1I", "/downloads/Vanlife/2024-05-26 The Unbelievable Rule That's Destroying The RV Community/The Unbelievable Rule That's Destroying The RV Community [rzvYOd3cv1I].mkv", false, ~U[2024-05-26 21:10:29Z]] 10:58:29.935 [debug] QUERY OK source="sources" db=0.2ms idle=225.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:29.936 [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] 10:58:29.936 [debug] QUERY OK source="media_items" db=0.1ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10186] 10:58:29.936 [debug] Current batch of media processed. Will check again in 1000ms 10:58:30.473 [info] {"source":"oban","duration":1228,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:58:30.937 [debug] Current batch of media processed. Will check again in 1000ms 10:58:31.938 [debug] Current batch of media processed. Will check again in 1000ms 10:58:32.939 [debug] Current batch of media processed. Will check again in 1000ms 10:58:33.940 [debug] Current batch of media processed. Will check again in 1000ms 10:58:34.941 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sorry for the long absence but I have quit van life and this is the story behind why I stopped posting YouTube videos and why I prematurely quit even though my plan was to travel for an entire year. Thanks for being a fan and thank you for sticking around! Rambo and I love you all!\n\n🎦 LOOKING FOR A MENTOR? 🎦\nI’ll be your Amazon Mentor: https://www.fiverr.com/s/bdYQ5vP\nI’ll be your YouTube Mentor: https://www.fiverr.com/s/pdBKjeY\n\n⭐ WAYS TO SUPPORT ME (IF YOU WANT) ⭐\n-Buy a Super Thanks\n-Donate via PayPal: https://tinyurl.com/Thank-You-Will\n-Buy me a coffee: https://buymeacoffee.com/petrohead\n\n🎬 MY CAMERA GEAR 🎬\n✔️ Sony ZV-1 camera: https://amzn.to/3xGLRlp\n✔️ Collapsible geen screen: https://amzn.to/45ZzEVx\n✔️ LED Video Lighting Kit: https://amzn.to/4cUf5vP\n✔️ Photography lighting umbrella kit: https://amzn.to/4cE3hy7\n✔️ Teleprompter: https://amzn.to/3S0ddKb\n✔️ DSLR Tripod: https://amzn.to/3xEcxTS\n✔️ RGB Video Light: https://amzn.to/3LkKZWJ\n✔️ Selfie Stick Tripod: https://amzn.to/3LfwOST\n\n🚌 VAN LIFE BASICS 🚌\n✔️ Camping Chair: https://amzn.to/3VWGgiP\n✔️ GetOutGear Down Blanket: https://amzn.to/3quz2mv\n✔️ Coleman 20-40 degree sleeping bag: https://amzn.to/3BXtDtA\n✔️ Pillow Covers: https://amzn.to/32sgV8H\n✔️ Spill proof Urinal: https://amzn.to/3eoxy7N\n\n🚌 VAN LIFE CLEANING ESSENTIALS 🚌\n✔️ Cordless USB Vacuum: https://amzn.to/3z0sCPQ\n✔️ QuickDry Microfiber towel: https://amzn.to/3S0e9yb\n✔️ Ivation Portable Shower: https://amzn.to/30YIpC2\n✔️ Cup Holder Trash Bin: https://amzn.to/3quada6\n\n🚌 VAN LIFE ELECTRONICS 🚌\n✔️ Chinese Diesel Heater: https://amzn.to/3VZVJyN\n✔️ 12v USB-C Adapter: https://amzn.to/3W0Jvpo\n✔️ Rechargeable Puck Lights: https://amzn.to/46f0GIN\n✔️ Govee Temp/Humidity Monitor: https://amzn.to/3Hf3JTu\n✔️ LED Vanity Mirror: https://amzn.to/3z0ZasP\n✔️ Remote Control Fan: https://amzn.to/3pwt5WZ\n✔️ JBL Flip 6 BT Speaker: https://amzn.to/45XhoMl\n\n🚌 VAN LIFE FIRST AID ESSENTIALS 🚌\n✔️ First Aid Kit: https://amzn.to/3Ew2CwX\n✔️ Carbon Minoxide Detector: https://amzn.to/3esFAMF\n✔️ Fire Extinguisher: https://amzn.to/3EovDKU\n\n🚌 VAN LIFE KITCHEN ESSENTIALS 🚌\n✔️ Coleman Folding Table: https://amzn.to/3Ew91rZ\n✔️ Collapsible Colander: https://amzn.to/3RWGup1\n✔️ 10’ Spatula: https://amzn.to/3etA909\n✔️ GSI Outdoors Cooking Pot: https://amzn.to/3z094Lm\n✔️ GSI Outdoors Frypan: https://amzn.to/3FusCde\n✔️ Pyrex Glass Container: https://amzn.to/32vsrjj\n✔️ Hotlogic Mini Oven: https://amzn.to/3yXIUJj\n✔️ Paper Towel Holder: https://amzn.to/4ePNOg1\n✔️ 3 in 1 Utensil Set: https://amzn.to/3FHEXuA\n✔️ Dash Egg Cooker: https://amzn.to/3FADAOr\n✔️ Stainless Steel Plates: https://amzn.to/4eSSCBd\n✔️ Insulated Coffee Mug: https://amzn.to/3EwAucO\n✔️ Collapsible Food Containers: https://amzn.to/32pNyE1\n✔️ JetBoil: https://amzn.to/3WeTWH8\n\n🚌 VAN LIFE PET ESSENTIALS 🚌\n✔️ Dog Bowl Mat: https://amzn.to/30ZnU8m\n✔️ Dog Mat Bed: https://amzn.to/3z1YzYb\n✔️ Collapsable Dog Bowl: https://amzn.to/3VVu2Hm\n✔️ Splash Proof Dog Water Bowl: https://amzn.to/3sGfrCF\n✔️ Food Container set: https://amzn.to/3z00MmI\n\nDISCLAIMER: If you purchase a product or service with the links that I provide, I may receive a small commission. However, there is no additional charge to you. Thanks for the support!", "duration" => 502, "filename" => "/downloads/Vanlife/2022-07-13 This is Why I Quit Van Life (it's been a total disaster!)/This is Why I Quit Van Life (it's been a total disaster!) [i9ANdxrcBR0].mp4", "id" => "i9ANdxrcBR0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=i9ANdxrcBR0", "playlist_index" => 57, "timestamp" => 1657746265, "title" => "This is Why I Quit Van Life (it's been a total disaster!)", "upload_date" => "20220713"} 10:58:34.942 [debug] QUERY OK source="sources" db=0.1ms idle=1387.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:58:34.942 [debug] QUERY OK source="sources" db=0.1ms idle=1387.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:34.943 [debug] QUERY OK source="media_items" db=0.4ms idle=1388.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-07-13 21:04:25Z], 10] 10:58:34.947 [debug] QUERY OK source="media_items" db=3.5ms idle=1229.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sorry for the long absence but I have quit van life and this is the story behind why I stopped posting YouTube videos and why I prematurely quit even though my plan was to travel for an entire year. Thanks for being a fan and thank you for sticking around! Rambo and I love you all!\n\n🎦 LOOKING FOR A MENTOR? 🎦\nI’ll be your Amazon Mentor: https://www.fiverr.com/s/bdYQ5vP\nI’ll be your YouTube Mentor: https://www.fiverr.com/s/pdBKjeY\n\n⭐ WAYS TO SUPPORT ME (IF YOU WANT) ⭐\n-Buy a Super Thanks\n-Donate via PayPal: https://tinyurl.com/Thank-You-Will\n-Buy me a coffee: https://buymeacoffee.com/petrohead\n\n🎬 MY CAMERA GEAR 🎬\n✔️ Sony ZV-1 camera: https://amzn.to/3xGLRlp\n✔️ Collapsible geen screen: https://amzn.to/45ZzEVx\n✔️ LED Video Lighting Kit: https://amzn.to/4cUf5vP\n✔️ Photography lighting umbrella kit: https://amzn.to/4cE3hy7\n✔️ Teleprompter: https://amzn.to/3S0ddKb\n✔️ DSLR Tripod: https://amzn.to/3xEcxTS\n✔️ RGB Video Light: https://amzn.to/3LkKZWJ\n✔️ Selfie Stick Tripod: https://amzn.to/3LfwOST\n\n🚌 VAN LIFE BASICS 🚌\n✔️ Camping Chair: https://amzn.to/3VWGgiP\n✔️ GetOutGear Down Blanket: https://amzn.to/3quz2mv\n✔️ Coleman 20-40 degree sleeping bag: https://amzn.to/3BXtDtA\n✔️ Pillow Covers: https://amzn.to/32sgV8H\n✔️ Spill proof Urinal: https://amzn.to/3eoxy7N\n\n🚌 VAN LIFE CLEANING ESSENTIALS 🚌\n✔️ Cordless USB Vacuum: https://amzn.to/3z0sCPQ\n✔️ QuickDry Microfiber towel: https://amzn.to/3S0e9yb\n✔️ Ivation Portable Shower: https://amzn.to/30YIpC2\n✔️ Cup Holder Trash Bin: https://amzn.to/3quada6\n\n🚌 VAN LIFE ELECTRONICS 🚌\n✔️ Chinese Diesel Heater: https://amzn.to/3VZVJyN\n✔️ 12v USB-C Adapter: https://amzn.to/3W0Jvpo\n✔️ Rechargeable Puck Lights: https://amzn.to/46f0GIN\n✔️ Govee Temp/Humidity Monitor: https://amzn.to/3Hf3JTu\n✔️ LED Vanity Mirror: https://amzn.to/3z0ZasP\n✔️ Remote Control Fan: https://amzn.to/3pwt5WZ\n✔️ JBL Flip 6 BT Speaker: https://amzn.to/45XhoMl\n\n🚌 VAN LIFE FIRST AID ESSENTIALS 🚌\n✔️ First Aid Kit: https://amzn.to/3Ew2CwX\n✔️ Carbon Minoxide Detector: https://amzn.to/3esFAMF\n✔️ Fire Extinguisher: https://amzn.to/3EovDKU\n\n🚌 VAN LIFE KITCHEN ESSENTIALS 🚌\n✔️ Coleman Folding Table: https://amzn.to/3Ew91rZ\n✔️ Collapsible Colander: https://amzn.to/3RWGup1\n✔️ 10’ Spatula: https://amzn.to/3etA909\n✔️ GSI Outdoors Cooking Pot: https://amzn.to/3z094Lm\n✔️ GSI Outdoors Frypan: https://amzn.to/3FusCde\n✔️ Pyrex Glass Container: https://amzn.to/32vsrjj\n✔️ Hotlogic Mini Oven: https://amzn.to/3yXIUJj\n✔️ Paper Towel Holder: https://amzn.to/4ePNOg1\n✔️ 3 in 1 Utensil Set: https://amzn.to/3FHEXuA\n✔️ Dash Egg Cooker: https://amzn.to/3FADAOr\n✔️ Stainless Steel Plates: https://amzn.to/4eSSCBd\n✔️ Insulated Coffee Mug: https://amzn.to/3EwAucO\n✔️ Collapsible Food Containers: https://amzn.to/32pNyE1\n✔️ JetBoil: https://amzn.to/3WeTWH8\n\n🚌 VAN LIFE PET ESSENTIALS 🚌\n✔️ Dog Bowl Mat: https://amzn.to/30ZnU8m\n✔️ Dog Mat Bed: https://amzn.to/3z1YzYb\n✔️ Collapsable Dog Bowl: https://amzn.to/3VVu2Hm\n✔️ Splash Proof Dog Water Bowl: https://amzn.to/3sGfrCF\n✔️ Food Container set: https://amzn.to/3z00MmI\n\nDISCLAIMER: If you purchase a product or service with the links that I provide, I may receive a small commission. However, there is no additional charge to you. Thanks for the support!", "This is Why I Quit Van Life (it's been a total disaster!)", "79b7fe9a-a35b-4e5b-8e99-03e616cf78e6", 10, [], 502, false, "i9ANdxrcBR0", "https://www.youtube.com/watch?v=i9ANdxrcBR0", 57, "/downloads/Vanlife/2022-07-13 This is Why I Quit Van Life (it's been a total disaster!)/This is Why I Quit Van Life (it's been a total disaster!) [i9ANdxrcBR0].mp4", false, false, false, 1, ~U[2022-07-13 21:04:25Z], ~U[2026-07-11 14:58:34Z], ~U[2026-07-11 14:58:34Z], "Sorry for the long absence but I have quit van life and this is the story behind why I stopped posting YouTube videos and why I prematurely quit even though my plan was to travel for an entire year. Thanks for being a fan and thank you for sticking around! Rambo and I love you all!\n\n🎦 LOOKING FOR A MENTOR? 🎦\nI’ll be your Amazon Mentor: https://www.fiverr.com/s/bdYQ5vP\nI’ll be your YouTube Mentor: https://www.fiverr.com/s/pdBKjeY\n\n⭐ WAYS TO SUPPORT ME (IF YOU WANT) ⭐\n-Buy a Super Thanks\n-Donate via PayPal: https://tinyurl.com/Thank-You-Will\n-Buy me a coffee: https://buymeacoffee.com/petrohead\n\n🎬 MY CAMERA GEAR 🎬\n✔️ Sony ZV-1 camera: https://amzn.to/3xGLRlp\n✔️ Collapsible geen screen: https://amzn.to/45ZzEVx\n✔️ LED Video Lighting Kit: https://amzn.to/4cUf5vP\n✔️ Photography lighting umbrella kit: https://amzn.to/4cE3hy7\n✔️ Teleprompter: https://amzn.to/3S0ddKb\n✔️ DSLR Tripod: https://amzn.to/3xEcxTS\n✔️ RGB Video Light: https://amzn.to/3LkKZWJ\n✔️ Selfie Stick Tripod: https://amzn.to/3LfwOST\n\n🚌 VAN LIFE BASICS 🚌\n✔️ Camping Chair: https://amzn.to/3VWGgiP\n✔️ GetOutGear Down Blanket: https://amzn.to/3quz2mv\n✔️ Coleman 20-40 degree sleeping bag: https://amzn.to/3BXtDtA\n✔️ Pillow Covers: https://amzn.to/32sgV8H\n✔️ Spill proof Urinal: https://amzn.to/3eoxy7N\n\n🚌 VAN LIFE CLEANING ESSENTIALS 🚌\n✔️ Cordless USB Vacuum: https://amzn.to/3z0sCPQ\n✔️ QuickDry Microfiber towel: https://amzn.to/3S0e9yb\n✔️ Ivation Portable Shower: https://amzn.to/30YIpC2\n✔️ Cup Holder Trash Bin: https://amzn.to/3quada6\n\n🚌 VAN LIFE ELECTRONICS 🚌\n✔️ Chinese Diesel Heater: https://amzn.to/3VZVJyN\n✔️ 12v USB-C Adapter: https://amzn.to/3W0Jvpo\n✔️ Rechargeable Puck Lights: https://amzn.to/46f0GIN\n✔️ Govee Temp/Humidity Monitor: https://amzn.to/3Hf3JTu\n✔️ LED Vanity Mirror: https://amzn.to/3z0ZasP\n✔️ Remote Control Fan: https://amzn.to/3pwt5WZ\n✔️ JBL Flip 6 BT Speaker: https://amzn.to/45XhoMl\n\n🚌 VAN LIFE FIRST AID ESSENTIALS 🚌\n✔️ First Aid Kit: https://amzn.to/3Ew2CwX\n✔️ Carbon Minoxide Detector: https://amzn.to/3esFAMF\n✔️ Fire Extinguisher: https://amzn.to/3EovDKU\n\n🚌 VAN LIFE KITCHEN ESSENTIALS 🚌\n✔️ Coleman Folding Table: https://amzn.to/3Ew91rZ\n✔️ Collapsible Colander: https://amzn.to/3RWGup1\n✔️ 10’ Spatula: https://amzn.to/3etA909\n✔️ GSI Outdoors Cooking Pot: https://amzn.to/3z094Lm\n✔️ GSI Outdoors Frypan: https://amzn.to/3FusCde\n✔️ Pyrex Glass Container: https://amzn.to/32vsrjj\n✔️ Hotlogic Mini Oven: https://amzn.to/3yXIUJj\n✔️ Paper Towel Holder: https://amzn.to/4ePNOg1\n✔️ 3 in 1 Utensil Set: https://amzn.to/3FHEXuA\n✔️ Dash Egg Cooker: https://amzn.to/3FADAOr\n✔️ Stainless Steel Plates: https://amzn.to/4eSSCBd\n✔️ Insulated Coffee Mug: https://amzn.to/3EwAucO\n✔️ Collapsible Food Containers: https://amzn.to/32pNyE1\n✔️ JetBoil: https://amzn.to/3WeTWH8\n\n🚌 VAN LIFE PET ESSENTIALS 🚌\n✔️ Dog Bowl Mat: https://amzn.to/30ZnU8m\n✔️ Dog Mat Bed: https://amzn.to/3z1YzYb\n✔️ Collapsable Dog Bowl: https://amzn.to/3VVu2Hm\n✔️ Splash Proof Dog Water Bowl: https://amzn.to/3sGfrCF\n✔️ Food Container set: https://amzn.to/3z00MmI\n\nDISCLAIMER: If you purchase a product or service with the links that I provid (truncated) 10:58:34.947 [debug] QUERY OK source="sources" db=0.2ms idle=232.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:34.948 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:58:34.948 [debug] QUERY OK source="media_items" db=0.2ms idle=5.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10188] 10:58:34.948 [debug] Current batch of media processed. Will check again in 1000ms 10:58:35.949 [debug] Current batch of media processed. Will check again in 1000ms 10:58:36.950 [debug] Current batch of media processed. Will check again in 1000ms 10:58:37.951 [debug] Current batch of media processed. Will check again in 1000ms 10:58:38.952 [debug] Current batch of media processed. Will check again in 1000ms 10:58:39.953 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The dream of converting an old van into a luxurious camper has inspired countless travel enthusiasts. Whether it’s a passion for adventure or the desire to build something truly unique, the possibilities are endless. With a budget of $5000, this incredible transformation showcases how creativity and skill can turn a simple Volkswagen Crafter into a stunning home on wheels.\n\nThe concept of campervans has evolved since the early 20th century, with iconic models like the Volkswagen Type 2 setting the standard. Today, @murattuncer pushes the boundaries of design and functionality, crafting campervans that redefine mobile living. This fully customized VW Crafter is a testament to his expertise and vision.\n\nIf you’re considering buying a camper, building one yourself, or commissioning a custom design, this project will inspire you to take the leap. For those seeking professional help, Murat Tuncer offers remarkable solutions tailored to your needs. Don’t hesitate to reach out to him and explore the endless possibilities for your campervan dreams!\n\n#AdventureReady #CamperBuild #CustomCamper #VanConversionJourney #HomeOnWheels\n\nMURAT TUNCER\nInstagram: / murattuncerrr\nInstagram2: / mtcabinlife\nYouTube: / @murattuncer\nContact: murattuncer325@gmail.com\n\nDisclaimer: This video is not affiliated with any brands or products showcased. All trademarks belong to their respective owners.\n\n#CamperVanConversion #VanLife #MuratTuncer #VWCamper #diyvanbuild", "duration" => 1748, "filename" => "/downloads/Vanlife/2024-11-17 Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife/Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife [6QfHXlf-urQ].mkv", "id" => "6QfHXlf-urQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6QfHXlf-urQ", "playlist_index" => 58, "timestamp" => 1731867973, "title" => "Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife", "upload_date" => "20241117"} 10:58:39.954 [debug] QUERY OK source="sources" db=0.1ms idle=1399.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:58:39.954 [debug] QUERY OK source="sources" db=0.1ms idle=1399.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:39.954 [debug] QUERY OK source="media_items" db=0.3ms idle=1399.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-17 18:26:13Z], 10] 10:58:39.962 [debug] QUERY OK source="media_items" db=7.0ms idle=1234.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The dream of converting an old van into a luxurious camper has inspired countless travel enthusiasts. Whether it’s a passion for adventure or the desire to build something truly unique, the possibilities are endless. With a budget of $5000, this incredible transformation showcases how creativity and skill can turn a simple Volkswagen Crafter into a stunning home on wheels.\n\nThe concept of campervans has evolved since the early 20th century, with iconic models like the Volkswagen Type 2 setting the standard. Today, @murattuncer pushes the boundaries of design and functionality, crafting campervans that redefine mobile living. This fully customized VW Crafter is a testament to his expertise and vision.\n\nIf you’re considering buying a camper, building one yourself, or commissioning a custom design, this project will inspire you to take the leap. For those seeking professional help, Murat Tuncer offers remarkable solutions tailored to your needs. Don’t hesitate to reach out to him and explore the endless possibilities for your campervan dreams!\n\n#AdventureReady #CamperBuild #CustomCamper #VanConversionJourney #HomeOnWheels\n\nMURAT TUNCER\nInstagram: / murattuncerrr\nInstagram2: / mtcabinlife\nYouTube: / @murattuncer\nContact: murattuncer325@gmail.com\n\nDisclaimer: This video is not affiliated with any brands or products showcased. All trademarks belong to their respective owners.\n\n#CamperVanConversion #VanLife #MuratTuncer #VWCamper #diyvanbuild", "Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife", "11ea327b-94a5-480a-9055-7c88f4350e6b", 10, [], 1748, false, "6QfHXlf-urQ", "https://www.youtube.com/watch?v=6QfHXlf-urQ", 58, "/downloads/Vanlife/2024-11-17 Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife/Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife [6QfHXlf-urQ].mkv", false, false, false, 1, ~U[2024-11-17 18:26:13Z], ~U[2026-07-11 14:58:39Z], ~U[2026-07-11 14:58:39Z], "The dream of converting an old van into a luxurious camper has inspired countless travel enthusiasts. Whether it’s a passion for adventure or the desire to build something truly unique, the possibilities are endless. With a budget of $5000, this incredible transformation showcases how creativity and skill can turn a simple Volkswagen Crafter into a stunning home on wheels.\n\nThe concept of campervans has evolved since the early 20th century, with iconic models like the Volkswagen Type 2 setting the standard. Today, @murattuncer pushes the boundaries of design and functionality, crafting campervans that redefine mobile living. This fully customized VW Crafter is a testament to his expertise and vision.\n\nIf you’re considering buying a camper, building one yourself, or commissioning a custom design, this project will inspire you to take the leap. For those seeking professional help, Murat Tuncer offers remarkable solutions tailored to your needs. Don’t hesitate to reach out to him and explore the endless possibilities for your campervan dreams!\n\n#AdventureReady #CamperBuild #CustomCamper #VanConversionJourney #HomeOnWheels\n\nMURAT TUNCER\nInstagram: / murattuncerrr\nInstagram2: / mtcabinlife\nYouTube: / @murattuncer\nContact: murattuncer325@gmail.com\n\nDisclaimer: This video is not affiliated with any brands or products showcased. All trademarks belong to their respective owners.\n\n#CamperVanConversion #VanLife #MuratTuncer #VWCamper #diyvanbuild", "Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife", 10, 1748, false, "6QfHXlf-urQ", "https://www.youtube.com/watch?v=6QfHXlf-urQ", "/downloads/Vanlife/2024-11-17 Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife/Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife [6QfHXlf-urQ].mkv", false, ~U[2024-11-17 18:26:13Z]] 10:58:39.962 [debug] QUERY OK source="sources" db=0.2ms idle=239.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:39.962 [debug] QUERY OK source="media_profiles" db=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] 10:58:39.963 [debug] QUERY OK source="media_items" db=0.2ms idle=8.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10190] 10:58:39.963 [debug] Current batch of media processed. Will check again in 1000ms 10:58:40.964 [debug] Current batch of media processed. Will check again in 1000ms 10:58:41.965 [debug] Current batch of media processed. Will check again in 1000ms 10:58:42.966 [debug] Current batch of media processed. Will check again in 1000ms 10:58:43.967 [debug] Current batch of media processed. Will check again in 1000ms 10:58:44.968 [debug] FileFollowerServer Handler: Got media attributes: %{"filename" => "/downloads/Vanlife/NA youtube video #-Zk0OhwlEI4/youtube video #-Zk0OhwlEI4 [-Zk0OhwlEI4].NA", "id" => "-Zk0OhwlEI4", "original_url" => "https://www.youtube.com/watch?v=-Zk0OhwlEI4", "playlist_index" => 59, "title" => "youtube video #-Zk0OhwlEI4"} 10:58:44.969 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1414.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:58:44.969 [debug] Current batch of media processed. Will check again in 1000ms 10:58:45.970 [debug] Current batch of media processed. Will check again in 1000ms 10:58:46.971 [debug] Current batch of media processed. Will check again in 1000ms 10:58:47.972 [debug] Current batch of media processed. Will check again in 1000ms 10:58:48.973 [debug] Current batch of media processed. Will check again in 1000ms 10:58:49.974 [debug] Current batch of media processed. Will check again in 1000ms 10:58:50.975 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The Ultimate Airstream Van Tour - 7 Years Later, It's Still Going Strong\n\nThe \"Mega Airstream\" is back! Seven years ago, I gave you a tour of my 1997 Airstream B190 camper van, and that video went viral with over 5 million views. It also brought a lot of comments—some loving, and some filled with hate. They said it was a waste of money, that it would break down, and that I'd regret my choices.\n\nWell, this van is still here, doing better than ever. In this full, updated tour, I'm addressing all the comments and showing you every upgrade and feature that makes this classic rig a modern, self-contained adventure vehicle. From the Ford V10 engine and a custom UJoint 4x4 conversion to the massive Lithionics lithium battery bank that replaced the old generator, this van is built for purpose-driven travel. I'll show you why I don't need a black tank, why I don't use a campsite, and how this van has truly changed my life. Join me, Patrick Botticelli, as I take you on a detailed journey through the evolution of the Mega Airstream.\n\nCore Vehicle & Powertrain:\n1997 Airstream B190 camper van (Ford E-Series 350 extended chassis)\nFord V10 gas engine\nUJoint Off-Road 4x4 conversion\nDana 60 front axle and Fox shocks\n24-gallon shortened fuel tank (due to conversion)\n109,000 miles on the odometer\n\nExterior & Safety Features:\nOriginal faded paint with no rust (lived in Arizona)\nVantage Optics headlights and side lights\nRaptor-lined hood with added vents\nCustom Raptor-looking front grill\nFront camera for safety\nAluminess front and rear bumpers\nAluminess swing-arm spare tire carrier\nPelican case storage box mounted on the rear\nBright LED tail lights and backup lights\nHitch receiver for towing (up to 5,000 lbs)\nOneUp bike rack\nAir suspension in the rear with manual inflation valves\n\nInterior & Living Features:\nCustom oak and poplar interior\nRemovable and reconfigurable main bed that converts to a double bed\nSecondary upper loft bed with privacy curtains and insect screens\nSwivel front passenger seat\nRenovated kitchen area with double sink, propane cooktop, and oven\nNovaKool 12V compressor fridge (replaces old propane fridge)\nEnclosed bathroom with a porcelain black tank toilet and bidet\nShower with new faucet and rain shower-style head\nFull-height roof with ability to stand inside\n\nTechnical & Electrical Systems:\n3 Lithionics lithium batteries (12,000 watt-hours of power)\nVictron Multiplus 3000-watt inverter\nZamp Solar power (320 watts)\nVictron smart dongle for monitoring\nARB dual compressor for airing up tires\nHoughton 9800 BTU air conditioner\nPropane furnace (18,000 BTU)\n6-gallon DSI gas water heater\n7-gallon black tank and 11-gallon gray tank\n18-gallon heated freshwater tank\n4G internet with a WeBoost antenna\nGarmin RV GPS for custom routing\nS-pod for managing exterior lights\nNest Cam for security\n\n#vanlife #airstream #4x4van #rvlife \n\nChapter Selections\n0:00 - Intro & The Viral Video Story\n1:09 - Why This Van Changed My Life\n1:51 - Airstream B190 History & Ford V10\n2:35 - Addressing the Haters: Awnings, Black Tanks, & Longevity\n3:36 - Exterior Tour: Upgrades & Wear and Tear\n5:31 - The UJoint 4x4 Conversion\n6:37 - Upgrades Under the Hood & Exterior Lights\n7:54 - Safety & Tech: Column Lock, Internet, & RV GPS\n9:12 - The Generator Delete & The New Lithium Battery System\n10:29 - Gear Storage & ARB Air Compressor\n11:32 - Kitchen & Roof System Upgrades\n12:19 - The Rooftop Systems: A/C, Solar, & Vents\n14:55 - The Rear Bumper & Pelican Case Storage\n16:09 - The Rear Compartment: Storage & Outside Shower\n18:19 - Bike Rack & Rear Safety Features\n22:00 - Welcome Inside the Mega Airstream\n23:05 - Swivel Chair & The Fuse Panel Controversy\n24:00 - The Upper Loft Bed & Privacy\n26:08 - The Main Bed Conversion\n29:05 - The Kitchen: Counter Space & Appliances\n32:00 - Inside Storage & Organization\n34:52 - The Bathroom: Toilet, Shower, & Privacy\n37:59 - Tank Monitoring & Final Thoughts\n\nThey Said My Van Was a Waste of Money... 7 Years Later, It's Still a Beast.\nThe Van They HATED is BACK! 🚐 My Mega Airstream Tour, 7 Years Later.\nThe Van That Got 5 Million Vi" <> ..., "duration" => 2352, "filename" => "/downloads/Vanlife/2025-09-13 The Van That Shook the Internet 7 Years Ago... It's Back and Better! MEGA Airstream B190 VanLife/The Van That Shook the Internet 7 Years Ago... It's Back and Better! MEGA Airstream B190 VanLife [fihAll0pfa0].mp4", "id" => "fihAll0pfa0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fihAll0pfa0", "playlist_index" => 60, "timestamp" => 1757772006, "title" => "The Van That Shook the Internet 7 Years Ago... It's Back and Better! MEGA Airstream B190 VanLife", "upload_date" => "20250913"} 10:58:50.976 [debug] QUERY OK source="sources" db=0.1ms idle=1421.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:58:50.976 [debug] QUERY OK source="sources" db=0.1ms idle=1421.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:50.977 [debug] QUERY OK source="media_items" db=0.4ms idle=1240.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-13 14:00:06Z], 10] 10:58:50.982 [debug] QUERY OK source="media_items" db=4.3ms idle=422.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Ultimate Airstream Van Tour - 7 Years Later, It's Still Going Strong\n\nThe \"Mega Airstream\" is back! Seven years ago, I gave you a tour of my 1997 Airstream B190 camper van, and that video went viral with over 5 million views. It also brought a lot of comments—some loving, and some filled with hate. They said it was a waste of money, that it would break down, and that I'd regret my choices.\n\nWell, this van is still here, doing better than ever. In this full, updated tour, I'm addressing all the comments and showing you every upgrade and feature that makes this classic rig a modern, self-contained adventure vehicle. From the Ford V10 engine and a custom UJoint 4x4 conversion to the massive Lithionics lithium battery bank that replaced the old generator, this van is built for purpose-driven travel. I'll show you why I don't need a black tank, why I don't use a campsite, and how this van has truly changed my life. Join me, Patrick Botticelli, as I take you on a detailed journey through the evolution of the Mega Airstream.\n\nCore Vehicle & Powertrain:\n1997 Airstream B190 camper van (Ford E-Series 350 extended chassis)\nFord V10 gas engine\nUJoint Off-Road 4x4 conversion\nDana 60 front axle and Fox shocks\n24-gallon shortened fuel tank (due to conversion)\n109,000 miles on the odometer\n\nExterior & Safety Features:\nOriginal faded paint with no rust (lived in Arizona)\nVantage Optics headlights and side lights\nRaptor-lined hood with added vents\nCustom Raptor-looking front grill\nFront camera for safety\nAluminess front and rear bumpers\nAluminess swing-arm spare tire carrier\nPelican case storage box mounted on the rear\nBright LED tail lights and backup lights\nHitch receiver for towing (up to 5,000 lbs)\nOneUp bike rack\nAir suspension in the rear with manual inflation valves\n\nInterior & Living Features:\nCustom oak and poplar interior\nRemovable and reconfigurable main bed that converts to a double bed\nSecondary upper loft bed with privacy curtains and insect screens\nSwivel front passenger seat\nRenovated kitchen area with double sink, propane cooktop, and oven\nNovaKool 12V compressor fridge (replaces old propane fridge)\nEnclosed bathroom with a porcelain black tank toilet and bidet\nShower with new faucet and rain shower-style head\nFull-height roof with ability to stand inside\n\nTechnical & Electrical Systems:\n3 Lithionics lithium batteries (12,000 watt-hours of power)\nVictron Multiplus 3000-watt inverter\nZamp Solar power (320 watts)\nVictron smart dongle for monitoring\nARB dual compressor for airing up tires\nHoughton 9800 BTU air conditioner\nPropane furnace (18,000 BTU)\n6-gallon DSI gas water heater\n7-gallon black tank and 11-gallon gray tank\n18-gallon heated freshwater tank\n4G internet with a WeBoost antenna\nGarmin RV GPS for custom routing\nS-pod for managing exterior lights\nNest Cam for security\n\n#vanlife #airstream #4x4van #rvlife \n\nChapter Selections\n0:00 - Intro & The Viral Video Story\n1:09 - Why This Van Changed My Life\n1:51 - Airstream B190 History & Ford V10\n2:35 - Addressing the Haters: Awnings, Black Tanks, & Longevity\n3:36 - Exterior Tour: Upgrades & Wear and Tear\n5:31 - The UJoint 4x4 Conversion\n6:37 - Upgrades Under the Hood & Exterior Lights\n7:54 - Safety & Tech: Column Lock, Internet, & RV GPS\n9:12 - The Generator Delete & The New Lithium Battery System\n10:29 - Gear Storage & ARB Air Compressor\n11:32 - Kitchen & Roof System Upgrades\n12:19 - The Rooftop Systems: A/C, Solar, & Vents\n14:55 - The Rear Bumper & Pelican Case Storage\n16:09 - The Rear Compartment: Storage & Outside Shower\n18:19 - Bike Rack & Rear Safety Features\n22:00 - Welcome Inside the Mega Airstream\n23:05 - Swivel Chair & The Fuse Panel Controversy\n24:00 - The Upper Loft Bed & Privacy\n26:08 - The Main Bed Conversion\n29:05 - The Kitchen: Counter Space & Appliances\n32:00 - Inside Storage & Organization\n34:52 - The Bathroom: Toilet, Shower, & Privacy\n37:59 - Tank Monitoring & Final Thoughts\n\nThey Said My Van Was a Waste of Money... 7 Years Later, It's Still a Beast.\nThe Van They HATED is BACK! 🚐 My Mega Airstream Tour, 7 Years Later.\nThe Van That Got 5 Million Vi" <> ..., "The Van That Shook the Internet 7 Years Ago... It's Back and Better! MEGA Airstream B190 VanLife", "0eac19a1-3172-422e-b836-3aa94f189f0c", 10, [], 2352, false, "fihAll0pfa0", "https://www.youtube.com/watch?v=fihAll0pfa0", 60, "/downloads/Vanlife/2025-09-13 The Van That Shook the Internet 7 Years Ago... It's Back and Better! MEGA Airstream B190 VanLife/The Van That Shook the Internet 7 Years Ago... It's Back and Better! MEGA Airstream B190 VanLife [fihAll0pfa0].mp4", false, false, false, 1, ~U[2025-09-13 14:00:06Z], ~U[2026-07-11 14:58:50Z], ~U[2026-07-11 14:58:50Z], "The Ultimate Airstream Van Tour - 7 Years Later, It's Still Going Strong\n\nThe \"Mega Airstream\" is back! Seven years ago, I gave you a tour of my 1997 Airstream B190 camper van, and that video went viral with over 5 million views. It also brought a lot of comments—some loving, and some filled with hate. They said it was a waste of money, that it would break down, and that I'd regret my choices.\n\nWell, this van is still here, doing better than ever. In this full, updated tour, I'm addressing all the comments and showing you every upgrade and feature that makes this classic rig a modern, self-contained adventure vehicle. From the Ford V10 engine and a custom UJoint 4x4 conversion to the massive Lithionics lithium battery bank that replaced the old generator, this van is built for purpose-driven travel. I'll show you why I don't need a black tank, why I don't use a campsite, and how this van has truly changed my life. Join me, Patrick Botticelli, as I take you on a detailed journey through the evolution of the Mega Airstream.\n\nCore Vehicle & Powertrain:\n1997 Airstream B190 camper van (Ford E-Series 350 extended chassis)\nFord V10 gas engine\nUJoint Off-Road 4x4 conversion\nDana 60 front axle and Fox shocks\n24-gallon shortened fuel tank (due to conversion)\n109,000 miles on the odometer\n\nExterior & Safety Features:\nOriginal faded paint with no rust (lived in Arizona)\nVantage Optics headlights and side lights\nRaptor-lined hood with added vents\nCustom Raptor-looking front grill\nFront camera for safety\nAluminess front and rear bumpers\nAluminess swing-arm spare tire carrier\nPelican case storage box mounted on the rear\nBright LED tail lights and backup lights\nHitch receiver for towing (up to 5,000 lbs)\nOneUp bike rack\nAir suspension in the rear with manual inflation valves\n\nInterior & Living Features:\nCustom oak and poplar interior\nRemovable and reconfigurable main bed that converts to a double bed\nSecondary upper loft bed with privacy curtains and insect screens\nSwivel front passenger seat\nRenovated kitchen area with double sink, propane cooktop, and oven\nNovaKool 12V compressor fridge (replaces old propane fridge)\nEnclosed bathroom with a porcelain black tank toilet and bidet\nShower with new faucet and rain shower-style head\nFull-height roof with ability to stand inside\n\nTechnical & Electrical Systems:\n3 Lithionics lithium batteries (12,000 watt-hours of power)\nVictron Multiplus 3000-watt inverter\nZamp Solar power (320 watts)\nVictron smart dongle for monitoring\nARB dual compressor for airing up tires\nHoughton 9800 BTU air conditi (truncated) 10:58:50.982 [debug] QUERY OK source="sources" db=0.2ms idle=244.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:50.982 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:58:50.983 [debug] QUERY OK source="media_items" db=0.2ms 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 [10195] 10:58:50.983 [debug] Current batch of media processed. Will check again in 1000ms 10:58:51.983 [debug] Current batch of media processed. Will check again in 1000ms 10:58:52.984 [debug] Current batch of media processed. Will check again in 1000ms 10:58:53.985 [debug] Current batch of media processed. Will check again in 1000ms 10:58:54.986 [debug] Current batch of media processed. Will check again in 1000ms 10:58:55.320 [info] GET /config.json 10:58:55.320 [info] GET /.env.production 10:58:55.320 [debug] QUERY OK source="settings" db=0.1ms idle=766.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.321 [debug] QUERY OK source="settings" db=0.3ms idle=766.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.321 [debug] QUERY OK source="settings" db=0.1ms idle=766.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.321 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:58:55.321 [debug] QUERY OK source="settings" db=0.1ms idle=766.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.321 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:58:55.321 [error] #PID<0.189556.0> running PinchflatWeb.Endpoint (connection #PID<0.189554.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /config.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189556.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html, application/xhtml+xml, application/xml; q=0.9, image/avif, image/webp, image/apng, */*; q=0.8"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US, en; q=0.9"}, {"cache-control", "no-cache"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "144.172.116.30"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFEOCOIlLT-DOoAQG-C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.json", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189556.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", (truncated) 10:58:55.321 [error] #PID<0.189557.0> running PinchflatWeb.Endpoint (connection #PID<0.189555.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.production ** (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.189555.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55496}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189557.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html, application/xhtml+xml, application/xml; q=0.9, image/avif, image/webp, image/apng, */*; q=0.8"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US, en; q=0.9"}, {"cache-control", "no-cache"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "144.172.116.30"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.production", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFEOCOIlPaQ-MAAVa6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189555.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55496}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189555.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55496}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189557.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", (truncated) 10:58:55.334 [info] GET /.env.example 10:58:55.334 [debug] QUERY OK source="settings" db=0.0ms idle=591.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.334 [debug] QUERY OK source="settings" db=0.0ms idle=13.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:58:55.334 [info] GET /api/env 10:58:55.334 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:58:55.335 [debug] QUERY OK source="settings" db=0.0ms idle=14.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:58:55.335 [debug] QUERY OK source="settings" db=0.0ms idle=14.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:58:55.335 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:58:55.335 [error] #PID<0.189558.0> running PinchflatWeb.Endpoint (connection #PID<0.189555.0>, stream id 2) terminated Server: pinchflat.econ.llc: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.189555.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55496}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189558.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html, application/xhtml+xml, application/xml; q=0.9, image/avif, image/webp, image/apng, */*; q=0.8"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US, en; q=0.9"}, {"cache-control", "no-cache"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "144.172.116.30"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.example", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFEOCRdtnlrh9AAQHAC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189555.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55496}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189555.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55496}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189558.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "te (truncated) 10:58:55.335 [error] #PID<0.189559.0> running PinchflatWeb.Endpoint (connection #PID<0.189554.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/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 /api/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189559.0>, params: %{}, path_info: ["api", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html, application/xhtml+xml, application/xml; q=0.9, image/avif, image/webp, image/apng, */*; q=0.8"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US, en; q=0.9"}, {"cache-control", "no-cache"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "144.172.116.30"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFEOCRlkXKvP0MAQHCC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189559.0>, params: %{}, path_info: ["api", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html (truncated) 10:58:55.351 [info] GET /.env 10:58:55.351 [debug] QUERY OK source="settings" db=0.1ms idle=30.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:58:55.351 [debug] QUERY OK source="settings" db=0.0ms idle=16.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:58:55.351 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:58:55.351 [error] #PID<0.189560.0> running PinchflatWeb.Endpoint (connection #PID<0.189554.0>, stream id 3) terminated Server: pinchflat.econ.llc: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.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189560.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html, application/xhtml+xml, application/xml; q=0.9, image/avif, image/webp, image/apng, */*; q=0.8"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US, en; q=0.9"}, {"cache-control", "no-cache"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "144.172.116.30"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFEOCVegWUuBhMAVa8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189560.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html, application/xhtml+xml, application/xml; q=0.9, (truncated) 10:58:55.508 [info] GET /api/config 10:58:55.508 [debug] QUERY OK source="settings" db=0.1ms 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 [] 10:58:55.508 [debug] QUERY OK source="settings" db=0.1ms 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 [] 10:58:55.508 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:58:55.509 [error] #PID<0.189561.0> running PinchflatWeb.Endpoint (connection #PID<0.189554.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /api/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189561.0>, params: %{}, path_info: ["api", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html, application/xhtml+xml, application/xml; q=0.9, image/avif, image/webp, image/apng, */*; q=0.8"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US, en; q=0.9"}, {"cache-control", "no-cache"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "144.172.116.30"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/api/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFEOC66jlHjcg4AVa-B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189561.0>, params: %{}, path_info: ["api", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accep (truncated) 10:58:55.527 [info] GET /config.js 10:58:55.527 [info] GET / 10:58:55.527 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 10:58:55.527 [debug] QUERY OK source="settings" db=0.1ms idle=192.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.527 [debug] QUERY OK source="settings" db=0.1ms idle=175.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.527 [debug] QUERY OK source="media_profiles" db=0.1ms idle=19.0ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 10:58:55.528 [debug] QUERY OK source="settings" db=0.2ms idle=176.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.528 [info] GET /js/config.js 10:58:55.528 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:58:55.528 [debug] QUERY OK source="sources" db=0.0ms queue=0.1ms idle=19.1ms SELECT count(s0."id") FROM "sources" AS s0 [] 10:58:55.528 [debug] QUERY OK source="settings" db=0.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 [] 10:58:55.528 [debug] QUERY OK source="settings" db=0.0ms 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 [] 10:58:55.528 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:58:55.528 [error] #PID<0.189562.0> running PinchflatWeb.Endpoint (connection #PID<0.189555.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /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 /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189555.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55496}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189562.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html, application/xhtml+xml, application/xml; q=0.9, image/avif, image/webp, image/apng, */*; q=0.8"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US, en; q=0.9"}, {"cache-control", "no-cache"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "144.172.116.30"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/config.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFEOC_b07yNKb0AQHEC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189555.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55496}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189555.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55496}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189562.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html (truncated) 10:58:55.528 [error] #PID<0.189565.0> running PinchflatWeb.Endpoint (connection #PID<0.189564.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /js/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 /js/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189564.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/config.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55500}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189565.0>, params: %{}, path_info: ["js", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html, application/xhtml+xml, application/xml; q=0.9, image/avif, image/webp, image/apng, */*; q=0.8"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US, en; q=0.9"}, {"cache-control", "no-cache"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "144.172.116.30"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/js/config.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFEOC_ownZVLQoAQHGC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189564.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/config.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55500}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189564.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/config.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55500}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189565.0>, params: %{}, path_info: ["js", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ { (truncated) 10:58:55.536 [debug] QUERY OK source="media_items" db=8.2ms idle=0.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:58:55.537 [debug] QUERY OK source="media_items" db=0.9ms idle=8.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 10:58:55.538 [debug] QUERY OK source="settings" db=0.1ms idle=9.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:58:55.538 [debug] QUERY OK source="settings" db=0.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 [] 10:58:55.538 [debug] QUERY OK source="settings" db=0.0ms idle=9.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:58:55.539 [debug] QUERY OK source="tasks" db=0.1ms 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"] 10:58:55.539 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:55.540 [debug] QUERY OK source="media_items" db=1.0ms idle=1.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)) [] 10:58:55.541 [debug] QUERY OK source="media_items" db=0.2ms 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] 10:58:55.541 [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 (?,?,?,?)) [1, 5, 16, 41] 10:58:55.547 [debug] QUERY OK source="media_items" db=4.6ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 10:58:55.548 [debug] QUERY OK source="media_items" db=0.8ms 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] 10:58:55.549 [debug] QUERY OK source="sources" db=0.1ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 10:58:55.550 [info] Sent 200 in 23ms 10:58:55.622 [info] GET /.env.local 10:58:55.622 [debug] QUERY OK source="settings" db=0.1ms idle=81.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.622 [debug] QUERY OK source="settings" db=0.0ms idle=80.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.622 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:58:55.623 [error] #PID<0.189566.0> running PinchflatWeb.Endpoint (connection #PID<0.189554.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /.env.local ** (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.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189566.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M" }, req_headers: [ {"accept", "text/html, application/xhtml+xml, application/xml; q=0.9, image/avif, image/webp, image/apng, */*; q=0.8"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US, en; q=0.9"}, {"cache-control", "no-cache"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "144.172.116.30"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/.env.local", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFEODWD9CMKvrwAVbCB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.local", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, (truncated) 10:58:55.691 [info] GET /js/env.js 10:58:55.691 [debug] QUERY OK source="settings" db=0.1ms idle=143.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.692 [debug] QUERY OK source="settings" db=0.0ms idle=143.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:55.692 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 10:58:55.692 [error] #PID<0.189567.0> running PinchflatWeb.Endpoint (connection #PID<0.189554.0>, stream id 7) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /js/env.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 /js/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/env.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189567.0>, params: %{}, path_info: ["js", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M" }, req_headers: [ {"accept", "text/html, application/xhtml+xml, application/xml; q=0.9, image/avif, image/webp, image/apng, */*; q=0.8"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US, en; q=0.9"}, {"cache-control", "no-cache"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36"}, {"via", "1.1 Caddy"}, {"x-forwarded-for", "144.172.116.30"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/js/env.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFEODmlnLIbZ5AAVbEB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/env.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189554.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/env.js", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 55494}, bindings: %{}, sock: {{172, 19, 0, 36}, 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", "accept-encoding" => "gzip", "accept-language" => "en-US, en; q=0.9", "cache-control" => "no-cache", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYYklWdGhTU0F1dmE3aGFyTnc0M3JsVE0z.YuJeRNVfP8AL5KoFdUIA7VKbWX5NI5DtLdvBieePh0M", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36", "via" => "1.1 Caddy", "x-forwarded-for" => "144.172.116.30", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: (truncated) 10:58:55.988 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Join us for a detailed van tour of this amazing campervan, showcasing its unique and flexible design. This van conversion is a fantastic example of comfortable van life, perfect for anyone considering a new van build. It truly embraces off grid living with its innovative features.\n\nhttps://www.limitlessvan.com/\n\nThis build blends premium materials, modern design, durability, and serious off-grid capability with a layout focused heavily on cooking and outdoor living. In the rear, you’ll find a full slide-out chef’s station with two different BBQ options, exterior storage, and a clean, organized gear layout for adventure travel.\n\nIn this video I cover:\n• The 3-point articulating bed system (first time I’ve seen one)\n• Full Limitless Van interior tour\n• Premium cabinetry, modern finishes, & smart storage\n• Dual outdoor BBQ slide-out cooking system\n• Off-grid systems & adventure-ready exterior\n• Why this company is quickly becoming a top-tier luxury van builder\n\nLimitless Van continues to push design and engineering forward, and this build is another example of how far the industry has come. If luxury adventure rigs and high-end craftsmanship are your thing, you’re going to love this tour.\n\n🔗 MY FAVORITE GEAR & PARTNER DISCOUNTS\nThese are products I personally use and love. Some links are affiliate links — using them helps support the channel at no extra cost to you. 🙏\n🛏 Roam Rest MattressesUse code jarrodtocci10 at checkout ➜ https://roamrest.com\n🔋 BigBattery.com – Off-Grid BatteriesSave with code TOCCI10 ➜ https://bigbattery.com/?ref=230\n🚐 Van Life Accessories – Hand-picked gear for life on the road\n➜ https://the-wanderful.kckb.me/jarrodtocci\n🔆 Sunflare Solar – Flexible, walkable solar panels\n10% off + Free Shipping with code Jarrod10\nOverland & rooftop tents ➜ https://www.sunflarexplor.com\nTiny homes & residential ➜ https://www.sunflarearray.com\n🚽 CompoCloset Composting Toilets\nSmell-free, easy to use\nStandard ➜ https://compocloset.com/?ref=2meJcc2Cz6jLa\nS1 Sealer ➜ https://compocloset.com/pages/compocloset-s1-sealer?currency=USD\n🧊 ICECO Portable Fridges & Freezers12% off with code JARRODTOCCI ➜ https://icecofreezer.com/JarrodTocci\n⚡️ RV Solar & Electrical Systems by RV ConnectionsGet your off-grid system set up ➜ https://rvsolarconnections.com/ref/1063/Use code JARRODT5 for a discount!\n🚙 Super Pacific X1 & Cloud Cap CampersMention “Jarrod Tocci” at checkout for $250 off accessories ➜ https://superpacificusa.com\n🪵 TotalBoat Epoxy & Wood FinishesGreat for DIY and woodworking projects ➜ https://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n🧰 Zarges – Rugged Aluminum Hard Cases\nPerfect for overlanding & gear storage ➜ Zarges\n🐑 Havelock Wool Insulation\nAll-natural, sustainable ➜ http://havelockwool.refr.cc/jarrodt\n🏝 Sandy Vans – 10% off select van upgrades\nUse code JARROD10 at checkout\n➜ https://sandyvans.com/JARROD10\nEligible products: Boost Box, SV Sandbar Roof Rack [2008+], Side Ladder, Starboard/Port Racks, Side Steps, Spare Tire Rack, Boost Box Mini, Stern Rear Step, Headliner Shelf\n🪵 Solid Wood Worx – $100 off PreCut Kits for overlanding vehicles\nUse code JARROD100 at checkout\n➜ https://solidwoodworx.com/JARROD100", "duration" => 2270, "filename" => "/downloads/Vanlife/2025-11-13 INSANE 3-Point Articulating Bed System — Full Luxury Van Tour/INSANE 3-Point Articulating Bed System — Full Luxury Van Tour [Q8p0KIKw6Rs].mkv", "id" => "Q8p0KIKw6Rs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Q8p0KIKw6Rs", "playlist_index" => 61, "timestamp" => 1763053246, "title" => "INSANE 3-Point Articulating Bed System — Full Luxury Van Tour", "upload_date" => "20251113"} 10:58:55.989 [debug] QUERY OK source="sources" db=0.2ms idle=366.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:58:55.989 [debug] QUERY OK source="sources" db=0.1ms idle=366.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:55.989 [debug] QUERY OK source="media_items" db=0.2ms idle=297.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 17:00:46Z], 10] 10:58:55.992 [debug] QUERY OK source="media_items" db=2.5ms idle=297.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join us for a detailed van tour of this amazing campervan, showcasing its unique and flexible design. This van conversion is a fantastic example of comfortable van life, perfect for anyone considering a new van build. It truly embraces off grid living with its innovative features.\n\nhttps://www.limitlessvan.com/\n\nThis build blends premium materials, modern design, durability, and serious off-grid capability with a layout focused heavily on cooking and outdoor living. In the rear, you’ll find a full slide-out chef’s station with two different BBQ options, exterior storage, and a clean, organized gear layout for adventure travel.\n\nIn this video I cover:\n• The 3-point articulating bed system (first time I’ve seen one)\n• Full Limitless Van interior tour\n• Premium cabinetry, modern finishes, & smart storage\n• Dual outdoor BBQ slide-out cooking system\n• Off-grid systems & adventure-ready exterior\n• Why this company is quickly becoming a top-tier luxury van builder\n\nLimitless Van continues to push design and engineering forward, and this build is another example of how far the industry has come. If luxury adventure rigs and high-end craftsmanship are your thing, you’re going to love this tour.\n\n🔗 MY FAVORITE GEAR & PARTNER DISCOUNTS\nThese are products I personally use and love. Some links are affiliate links — using them helps support the channel at no extra cost to you. 🙏\n🛏 Roam Rest MattressesUse code jarrodtocci10 at checkout ➜ https://roamrest.com\n🔋 BigBattery.com – Off-Grid BatteriesSave with code TOCCI10 ➜ https://bigbattery.com/?ref=230\n🚐 Van Life Accessories – Hand-picked gear for life on the road\n➜ https://the-wanderful.kckb.me/jarrodtocci\n🔆 Sunflare Solar – Flexible, walkable solar panels\n10% off + Free Shipping with code Jarrod10\nOverland & rooftop tents ➜ https://www.sunflarexplor.com\nTiny homes & residential ➜ https://www.sunflarearray.com\n🚽 CompoCloset Composting Toilets\nSmell-free, easy to use\nStandard ➜ https://compocloset.com/?ref=2meJcc2Cz6jLa\nS1 Sealer ➜ https://compocloset.com/pages/compocloset-s1-sealer?currency=USD\n🧊 ICECO Portable Fridges & Freezers12% off with code JARRODTOCCI ➜ https://icecofreezer.com/JarrodTocci\n⚡️ RV Solar & Electrical Systems by RV ConnectionsGet your off-grid system set up ➜ https://rvsolarconnections.com/ref/1063/Use code JARRODT5 for a discount!\n🚙 Super Pacific X1 & Cloud Cap CampersMention “Jarrod Tocci” at checkout for $250 off accessories ➜ https://superpacificusa.com\n🪵 TotalBoat Epoxy & Wood FinishesGreat for DIY and woodworking projects ➜ https://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n🧰 Zarges – Rugged Aluminum Hard Cases\nPerfect for overlanding & gear storage ➜ Zarges\n🐑 Havelock Wool Insulation\nAll-natural, sustainable ➜ http://havelockwool.refr.cc/jarrodt\n🏝 Sandy Vans – 10% off select van upgrades\nUse code JARROD10 at checkout\n➜ https://sandyvans.com/JARROD10\nEligible products: Boost Box, SV Sandbar Roof Rack [2008+], Side Ladder, Starboard/Port Racks, Side Steps, Spare Tire Rack, Boost Box Mini, Stern Rear Step, Headliner Shelf\n🪵 Solid Wood Worx – $100 off PreCut Kits for overlanding vehicles\nUse code JARROD100 at checkout\n➜ https://solidwoodworx.com/JARROD100", "INSANE 3-Point Articulating Bed System — Full Luxury Van Tour", "0ac6fb90-54d0-401a-9c53-62a3aeca7a9f", 10, [], 2270, false, "Q8p0KIKw6Rs", "https://www.youtube.com/watch?v=Q8p0KIKw6Rs", 61, "/downloads/Vanlife/2025-11-13 INSANE 3-Point Articulating Bed System — Full Luxury Van Tour/INSANE 3-Point Articulating Bed System — Full Luxury Van Tour [Q8p0KIKw6Rs].mkv", false, false, false, 1, ~U[2025-11-13 17:00:46Z], ~U[2026-07-11 14:58:55Z], ~U[2026-07-11 14:58:55Z], "Join us for a detailed van tour of this amazing campervan, showcasing its unique and flexible design. This van conversion is a fantastic example of comfortable van life, perfect for anyone considering a new van build. It truly embraces off grid living with its innovative features.\n\nhttps://www.limitlessvan.com/\n\nThis build blends premium materials, modern design, durability, and serious off-grid capability with a layout focused heavily on cooking and outdoor living. In the rear, you’ll find a full slide-out chef’s station with two different BBQ options, exterior storage, and a clean, organized gear layout for adventure travel.\n\nIn this video I cover:\n• The 3-point articulating bed system (first time I’ve seen one)\n• Full Limitless Van interior tour\n• Premium cabinetry, modern finishes, & smart storage\n• Dual outdoor BBQ slide-out cooking system\n• Off-grid systems & adventure-ready exterior\n• Why this company is quickly becoming a top-tier luxury van builder\n\nLimitless Van continues to push design and engineering forward, and this build is another example of how far the industry has come. If luxury adventure rigs and high-end craftsmanship are your thing, you’re going to love this tour.\n\n🔗 MY FAVORITE GEAR & PARTNER DISCOUNTS\nThese are products I personally use and love. Some links are affiliate links — using them helps support the channel at no extra cost to you. 🙏\n🛏 Roam Rest MattressesUse code jarrodtocci10 at checkout ➜ https://roamrest.com\n🔋 BigBattery.com – Off-Grid BatteriesSave with code TOCCI10 ➜ https://bigbattery.com/?ref=230\n🚐 Van Life Accessories – Hand-picked gear for life on the road\n➜ https://the-wanderful.kckb.me/jarrodtocci\n🔆 Sunflare Solar – Flexible, walkable solar panels\n10% off + Free Shipping with code Jarrod10\nOverland & rooftop tents ➜ https://www.sunflarexplor.com\nTiny homes & residential ➜ https://www.sunflarearray.com\n🚽 CompoCloset Composting Toilets\nSmell-free, easy to use\nStandard ➜ https://compocloset.com/?ref=2meJcc2Cz6jLa\nS1 Sealer ➜ https://compocloset.com/pages/compocloset-s1-sealer?currency=USD\n🧊 ICECO Portable Fridges & Freezers12% off with code JARRODTOCCI ➜ https://icecofreezer.com/JarrodTocci\n⚡️ RV Solar & Electrical Systems by RV ConnectionsGet your off-grid system set up ➜ https://rvsolarconnections.com/ref/1063/Use code JARRODT5 for a discount!\n🚙 Super Pacific X1 & Cloud Cap CampersMention “Jarrod Tocci” at checkout for $250 off accessories ➜ https://superpacificusa.com\n🪵 TotalBoat Epoxy & Wood FinishesGreat for DIY and woodworking projects ➜ https://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n🧰 Zarges – Rugged Aluminum Hard Cases\nPerfect for overlanding & gear storage ➜ Zarges\n🐑 Havelock Wool Insulation\nAll-natural, sustainable ➜ http://havelockwool.refr.cc/jarrodt\n🏝 Sandy Vans – 10% off select van upgrades\nUse code JARROD10 at checkout\n➜ https://sandyvans.com/JARROD10\nEligible products: Boost Box, SV Sandbar Roof Rack [2008+], Side Ladder, Starboard/Port Racks, Side Steps, Spare Tire Rack, Boost Box Mini, Stern Rear Step, Headliner Shelf\n🪵 Solid Wood Worx – $100 off PreCut Kits for overlanding vehicles\nUse code JARROD100 at checkout\n➜ https://solidwoodworx.com/JARROD100", "INSANE 3-Point Articulating Bed System — Full Luxury Van Tour", 10, 2270, false, "Q8p0KIKw6Rs", "https://www.youtube.com/watch?v=Q8p0KIKw6Rs", "/downloads/Vanlife/2025-11-13 INSANE 3-Point Articulating Bed System — Full Luxury Van Tour/I (truncated) 10:58:55.993 [debug] QUERY OK source="sources" db=0.2ms idle=248.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:58:55.993 [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:58:55.993 [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 [10197] 10:58:55.994 [debug] Current batch of media processed. Will check again in 1000ms 10:58:56.994 [debug] Current batch of media processed. Will check again in 1000ms 10:58:57.995 [debug] Current batch of media processed. Will check again in 1000ms 10:58:58.744 [info] GET /settings.js 10:58:58.744 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 10:58:58.744 [debug] QUERY OK source="settings" db=0.1ms idle=1189.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 10:58:58.745 [debug] QUERY OK source="settings" db=0.0ms idle=1190.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:58.745 [debug] QUERY OK source="settings" db=0.0ms idle=1190.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:58.745 [debug] QUERY OK source="settings" db=0.1ms idle=1190.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:58:58.746 [info] Sent 200 in 2ms 10:58:58.996 [debug] Current batch of media processed. Will check again in 1000ms 10:58:59.997 [debug] Current batch of media processed. Will check again in 1000ms 10:59:00.203 [info] {"source":"oban","duration":285,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 10:59:00.475 [info] {"source":"oban","duration":616,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 10:59:00.998 [debug] Current batch of media processed. Will check again in 1000ms 10:59:01.999 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "This van build and design is one of a kind. They went all out and made a functional and beautiful van all on a Sprinter 170. Feels like a spa and the only thing I'm not happy about is I wasn't able to see it in person. Thank you to Kyle for doing a tour for me and being able to share with everyone on my channel. Everyone links below, including mine, enjoy!\n\nVideographer/Interview by:\n@kylecanady \nhttps://www.instagram.com/kyles.vanlife/\n\nEdden's Info:\nIG: https://www.instagram.com/eddenram/\n\nYOUTUBE: https://www.youtube.com/channel/UCQtcuKddjkp3R-J6WrxsmUw\n\nTIKTOK: https://www.tiktok.com/@nicoleandedden\n\nFACEBOOK: https://www.facebook.com/anandalivingexperiences/\n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nAmazon Store:\nhttps://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nLooking for great batteries? These are the batteries in my Van and Jeep AND now new TINY HOME!\nReLion Battery:\nhttp://relionbattery.com?aff=6\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products (used in 2nd van and new Tiny Home build):\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "duration" => 1676, "filename" => "/downloads/Vanlife/2023-08-17 Tulum Inspired Concrete Oasis DREAM Van Tour/Tulum Inspired Concrete Oasis DREAM Van Tour [TeApFheOyhE].mp4", "id" => "TeApFheOyhE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TeApFheOyhE", "playlist_index" => 62, "timestamp" => 1692288032, "title" => "Tulum Inspired Concrete Oasis DREAM Van Tour", "upload_date" => "20230817"} 10:59:02.000 [debug] QUERY OK source="sources" db=0.2ms idle=1445.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:59:02.000 [debug] QUERY OK source="sources" db=0.1ms idle=1248.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:02.001 [debug] QUERY OK source="media_items" db=0.4ms idle=446.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-17 16:00:32Z], 10] 10:59:02.006 [debug] QUERY OK source="media_items" db=4.3ms idle=446.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This van build and design is one of a kind. They went all out and made a functional and beautiful van all on a Sprinter 170. Feels like a spa and the only thing I'm not happy about is I wasn't able to see it in person. Thank you to Kyle for doing a tour for me and being able to share with everyone on my channel. Everyone links below, including mine, enjoy!\n\nVideographer/Interview by:\n@kylecanady \nhttps://www.instagram.com/kyles.vanlife/\n\nEdden's Info:\nIG: https://www.instagram.com/eddenram/\n\nYOUTUBE: https://www.youtube.com/channel/UCQtcuKddjkp3R-J6WrxsmUw\n\nTIKTOK: https://www.tiktok.com/@nicoleandedden\n\nFACEBOOK: https://www.facebook.com/anandalivingexperiences/\n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nAmazon Store:\nhttps://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nLooking for great batteries? These are the batteries in my Van and Jeep AND now new TINY HOME!\nReLion Battery:\nhttp://relionbattery.com?aff=6\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products (used in 2nd van and new Tiny Home build):\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "Tulum Inspired Concrete Oasis DREAM Van Tour", "13a58a78-b1fc-4a13-a973-80781b8ca4ff", 10, [], 1676, false, "TeApFheOyhE", "https://www.youtube.com/watch?v=TeApFheOyhE", 62, "/downloads/Vanlife/2023-08-17 Tulum Inspired Concrete Oasis DREAM Van Tour/Tulum Inspired Concrete Oasis DREAM Van Tour [TeApFheOyhE].mp4", false, false, false, 1, ~U[2023-08-17 16:00:32Z], ~U[2026-07-11 14:59:02Z], ~U[2026-07-11 14:59:02Z], "This van build and design is one of a kind. They went all out and made a functional and beautiful van all on a Sprinter 170. Feels like a spa and the only thing I'm not happy about is I wasn't able to see it in person. Thank you to Kyle for doing a tour for me and being able to share with everyone on my channel. Everyone links below, including mine, enjoy!\n\nVideographer/Interview by:\n@kylecanady \nhttps://www.instagram.com/kyles.vanlife/\n\nEdden's Info:\nIG: https://www.instagram.com/eddenram/\n\nYOUTUBE: https://www.youtube.com/channel/UCQtcuKddjkp3R-J6WrxsmUw\n\nTIKTOK: https://www.tiktok.com/@nicoleandedden\n\nFACEBOOK: https://www.facebook.com/anandalivingexperiences/\n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nAmazon Store:\nhttps://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nLooking for great batteries? These are the batteries in my Van and Jeep AND now new TINY HOME!\nReLion Battery:\nhttp://relionbattery.com?aff=6\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products (used in 2nd van and new Tiny Home build):\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "Tulum Inspired Concrete Oasis DREAM Van Tour", 10, 1676, false, "TeApFheOyhE", "https://www.youtube.com/watch?v=TeApFheOyhE", "/downloads/Vanlife/2023-08-17 Tulum Inspired Concrete Oasis DREAM Van Tour/Tulum Inspired Concrete Oasis DREAM Van Tour [TeApFheOyhE].mp4", false, ~U[2023-08-17 16:00:32Z]] 10:59:02.006 [debug] QUERY OK source="sources" db=0.1ms idle=253.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:02.006 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:59:02.007 [debug] QUERY OK source="media_items" db=0.3ms 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 [10199] 10:59:02.007 [debug] Current batch of media processed. Will check again in 1000ms 10:59:03.008 [debug] Current batch of media processed. Will check again in 1000ms 10:59:04.009 [debug] Current batch of media processed. Will check again in 1000ms 10:59:05.010 [debug] Current batch of media processed. Will check again in 1000ms 10:59:06.011 [debug] Current batch of media processed. Will check again in 1000ms 10:59:07.012 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The world's first Lexus Lx 470 camper! Here's a walkaround of the finished product!\n\nBuilder - Henry Russo\nProducer - Jesse Colussy\nSound and Director - Zak K\n\nThe wing wall video -https://youtu.be/me5o7xnHQ_U?si=Rtkcf2fjIJlfbww3\n\nThe full build playlist - https://youtube.com/playlist?list=PLXA32UVmpI3cOPTUgCgTT1X9tDIYQD5qH&si=WY1M8kikUkyRm416\n\n\nSupport and Follow us!\nPatreon: https://www.patreon.com/itsdeza/membership\nMerch: https://itsdeza.bigcartel.com\nAmazon Store: https://www.amazon.com/shop/itsdeza\nFacebook: https://www.facebook.com/jcolussy/\nInstagram: https://www.instagram.com/jesse_itsdeza/\nEmail - jcolussy.inc@gmail.com\n\n\n\nIf you read this message me on Facebook and say hi \n\n*As an amazon affiliate, we may earn a small percentage*", "duration" => 953, "filename" => "/downloads/Vanlife/2025-11-15 First Ever Lexus LX 470 Camper Walkaround/First Ever Lexus LX 470 Camper Walkaround [PgpccBP809U].mkv", "id" => "PgpccBP809U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PgpccBP809U", "playlist_index" => 63, "timestamp" => 1763250742, "title" => "First Ever Lexus LX 470 Camper Walkaround", "upload_date" => "20251115"} 10:59:07.013 [debug] QUERY OK source="sources" db=0.1ms idle=1458.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:59:07.013 [debug] QUERY OK source="sources" db=0.1ms idle=1458.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:07.013 [debug] QUERY OK source="media_items" db=0.4ms idle=1458.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-15 23:52:22Z], 10] 10:59:07.014 [debug] QUERY OK source="media_items" db=0.6ms idle=1255.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The world's first Lexus Lx 470 camper! Here's a walkaround of the finished product!\n\nBuilder - Henry Russo\nProducer - Jesse Colussy\nSound and Director - Zak K\n\nThe wing wall video -https://youtu.be/me5o7xnHQ_U?si=Rtkcf2fjIJlfbww3\n\nThe full build playlist - https://youtube.com/playlist?list=PLXA32UVmpI3cOPTUgCgTT1X9tDIYQD5qH&si=WY1M8kikUkyRm416\n\n\nSupport and Follow us!\nPatreon: https://www.patreon.com/itsdeza/membership\nMerch: https://itsdeza.bigcartel.com\nAmazon Store: https://www.amazon.com/shop/itsdeza\nFacebook: https://www.facebook.com/jcolussy/\nInstagram: https://www.instagram.com/jesse_itsdeza/\nEmail - jcolussy.inc@gmail.com\n\n\n\nIf you read this message me on Facebook and say hi \n\n*As an amazon affiliate, we may earn a small percentage*", "First Ever Lexus LX 470 Camper Walkaround", "cd3d60fd-9f16-4b6b-a864-f69382143493", 10, [], 953, false, "PgpccBP809U", "https://www.youtube.com/watch?v=PgpccBP809U", 63, "/downloads/Vanlife/2025-11-15 First Ever Lexus LX 470 Camper Walkaround/First Ever Lexus LX 470 Camper Walkaround [PgpccBP809U].mkv", false, false, false, 1, ~U[2025-11-15 23:52:22Z], ~U[2026-07-11 14:59:07Z], ~U[2026-07-11 14:59:07Z], "The world's first Lexus Lx 470 camper! Here's a walkaround of the finished product!\n\nBuilder - Henry Russo\nProducer - Jesse Colussy\nSound and Director - Zak K\n\nThe wing wall video -https://youtu.be/me5o7xnHQ_U?si=Rtkcf2fjIJlfbww3\n\nThe full build playlist - https://youtube.com/playlist?list=PLXA32UVmpI3cOPTUgCgTT1X9tDIYQD5qH&si=WY1M8kikUkyRm416\n\n\nSupport and Follow us!\nPatreon: https://www.patreon.com/itsdeza/membership\nMerch: https://itsdeza.bigcartel.com\nAmazon Store: https://www.amazon.com/shop/itsdeza\nFacebook: https://www.facebook.com/jcolussy/\nInstagram: https://www.instagram.com/jesse_itsdeza/\nEmail - jcolussy.inc@gmail.com\n\n\n\nIf you read this message me on Facebook and say hi \n\n*As an amazon affiliate, we may earn a small percentage*", "First Ever Lexus LX 470 Camper Walkaround", 10, 953, false, "PgpccBP809U", "https://www.youtube.com/watch?v=PgpccBP809U", "/downloads/Vanlife/2025-11-15 First Ever Lexus LX 470 Camper Walkaround/First Ever Lexus LX 470 Camper Walkaround [PgpccBP809U].mkv", false, ~U[2025-11-15 23:52:22Z]] 10:59:07.015 [debug] QUERY OK source="sources" db=0.1ms idle=254.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:07.015 [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] 10:59:07.015 [debug] QUERY OK source="media_items" db=0.1ms idle=2.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10201] 10:59:07.015 [debug] Current batch of media processed. Will check again in 1000ms 10:59:08.016 [debug] Current batch of media processed. Will check again in 1000ms 10:59:09.017 [debug] Current batch of media processed. Will check again in 1000ms 10:59:10.018 [debug] Current batch of media processed. Will check again in 1000ms 10:59:11.019 [debug] Current batch of media processed. Will check again in 1000ms 10:59:12.020 [debug] Current batch of media processed. Will check again in 1000ms 10:59:13.021 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The box truck is sold and has found a new home, thanks for watching hopefully it inspires your own adventures!", "duration" => 291, "filename" => "/downloads/Vanlife/2023-09-18 Stealth Box Truck Tiny Home | Build Video | (Sold)/Stealth Box Truck Tiny Home | Build Video | (Sold) [e-nxsPxbacI].mp4", "id" => "e-nxsPxbacI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=e-nxsPxbacI", "playlist_index" => 64, "timestamp" => 1695014686, "title" => "Stealth Box Truck Tiny Home | Build Video | (Sold)", "upload_date" => "20230918"} 10:59:13.022 [debug] QUERY OK source="sources" db=0.1ms idle=467.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:59:13.022 [debug] QUERY OK source="sources" db=0.1ms idle=467.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:13.023 [debug] QUERY OK source="media_items" db=0.4ms idle=468.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-18 05:24:46Z], 10] 10:59:13.023 [debug] QUERY OK source="media_items" db=0.3ms idle=468.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The box truck is sold and has found a new home, thanks for watching hopefully it inspires your own adventures!", "Stealth Box Truck Tiny Home | Build Video | (Sold)", "4dc53041-2b24-4831-9c3d-d968f9bdfbc1", 10, [], 291, false, "e-nxsPxbacI", "https://www.youtube.com/watch?v=e-nxsPxbacI", 64, "/downloads/Vanlife/2023-09-18 Stealth Box Truck Tiny Home | Build Video | (Sold)/Stealth Box Truck Tiny Home | Build Video | (Sold) [e-nxsPxbacI].mp4", false, false, false, 1, ~U[2023-09-18 05:24:46Z], ~U[2026-07-11 14:59:13Z], ~U[2026-07-11 14:59:13Z], "The box truck is sold and has found a new home, thanks for watching hopefully it inspires your own adventures!", "Stealth Box Truck Tiny Home | Build Video | (Sold)", 10, 291, false, "e-nxsPxbacI", "https://www.youtube.com/watch?v=e-nxsPxbacI", "/downloads/Vanlife/2023-09-18 Stealth Box Truck Tiny Home | Build Video | (Sold)/Stealth Box Truck Tiny Home | Build Video | (Sold) [e-nxsPxbacI].mp4", false, ~U[2023-09-18 05:24:46Z]] 10:59:13.024 [debug] QUERY OK source="sources" db=0.1ms idle=255.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:13.024 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 10:59:13.024 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10203] 10:59:13.024 [debug] Current batch of media processed. Will check again in 1000ms 10:59:14.025 [debug] Current batch of media processed. Will check again in 1000ms 10:59:15.026 [debug] Current batch of media processed. Will check again in 1000ms 10:59:16.027 [debug] Current batch of media processed. Will check again in 1000ms 10:59:17.028 [debug] Current batch of media processed. Will check again in 1000ms 10:59:18.029 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "#sprinter #promaster #transit #fords #gmc \n\nReady to hit the road but not sure which van type is right for you? Join Jonny and Brian at the Field Van Factory in Fresno as they guide you through all things camper vans! Whether you’re eyeing a Mercedes Sprinter for its tech features, a Ford Transit for its serviceability, or even the off-road king—the Ford Classic—this video breaks down what each model has to offer. We’ll walk you through each van’s specs, from seating to towing to where each model really shines. And like Brian says, “There is no perfect van for everybody, but there is a perfect van for you”. (1:06) \n\nNo matter your adventure, we’ve got options to fit your lifestyle and needs. From the popular Sprinter with tons of aftermarket options, to the rugged Ford Classic's off-road capability, learn what makes each van type unique and discover your perfect vehicle. Watch now, take notes, and get ready to start creating your adventure! \n\nField Van Chassis Models Covered:\n\nMercedes Sprinters // Available in multiple sizes and high-tech safety features 🚐\n\nRam ProMasters // Spacious interiors, lower maintenance costs, and great drivability 🛠️\n\nFord Transits // EcoBoost engine, all-wheel drive options, and factory-lifted Transit Trail 🌲\n\nGMC Chevy Classic // American vans with available 4x4 conversions 🔧\n\nFord Classics // The ultimate off-road van with custom 4x4 capabilities 💪\n\nReady to make a choice? Drop a comment if you have questions or visit us at FieldVan.com to explore more! And don’t forget to subscribe for more van guides and build tours.\n\nLearn more about Field Van and our builds on our website: https://fieldvan.com/\n\n🚨🚨Already own a van? Perfect, we also do conversions on most modern vans within model years back to 1997. 🚨🚨\n\n#vanlife #fieldvan #vanconversions #vanbuildseries #automobile \n\nSubscribe to our channel for more awesome van life content. \n\nSUBSCRIBE: @FieldVan\n—\nYOU MIGHT LIKE: \nhttps://youtu.be/-orAVchkXeA?si=tpp0tDvBac-bR1IA\nhttps://youtu.be/u4KTbjQoB14?si=4V6CZwW14FDgYEFE\n\n#Vanfeatures #Vandreams #Vangoals #VanTours #ChooseYourVan \n—\nWHO ARE WE?\n\nField Van is the premier choice for custom van conversions in Fresno, CA, and Reno, NV. Our team is passionate about the craftsmanship of building reliable, customized vans that let you create your own adventures on and off-trail. 🌲🚐\n—\nCONTACT US!\n\nFor collaborations or to share your field van in action, email us at info@fieldvan.com \n\nDon’t forget to subscribe to our channel!\n\nFollow us on our socials!\nInstagram: https://www.instagram.com/fieldvans/\nTwitter: https://twitter.com/fieldvan\nFacebook: https://www.facebook.com/Fieldvans", "duration" => 1112, "filename" => "/downloads/Vanlife/2024-11-19 Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE/Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE [ysrwCdMX6fc].mp4", "id" => "ysrwCdMX6fc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ysrwCdMX6fc", "playlist_index" => 65, "timestamp" => 1732046922, "title" => "Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE", "upload_date" => "20241119"} 10:59:18.030 [debug] QUERY OK source="sources" db=0.1ms idle=1475.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:59:18.030 [debug] QUERY OK source="sources" db=0.1ms idle=1475.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:18.030 [debug] QUERY OK source="media_items" db=0.3ms idle=1475.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-19 20:08:42Z], 10] 10:59:18.033 [debug] QUERY OK source="media_items" db=2.5ms idle=1258.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#sprinter #promaster #transit #fords #gmc \n\nReady to hit the road but not sure which van type is right for you? Join Jonny and Brian at the Field Van Factory in Fresno as they guide you through all things camper vans! Whether you’re eyeing a Mercedes Sprinter for its tech features, a Ford Transit for its serviceability, or even the off-road king—the Ford Classic—this video breaks down what each model has to offer. We’ll walk you through each van’s specs, from seating to towing to where each model really shines. And like Brian says, “There is no perfect van for everybody, but there is a perfect van for you”. (1:06) \n\nNo matter your adventure, we’ve got options to fit your lifestyle and needs. From the popular Sprinter with tons of aftermarket options, to the rugged Ford Classic's off-road capability, learn what makes each van type unique and discover your perfect vehicle. Watch now, take notes, and get ready to start creating your adventure! \n\nField Van Chassis Models Covered:\n\nMercedes Sprinters // Available in multiple sizes and high-tech safety features 🚐\n\nRam ProMasters // Spacious interiors, lower maintenance costs, and great drivability 🛠️\n\nFord Transits // EcoBoost engine, all-wheel drive options, and factory-lifted Transit Trail 🌲\n\nGMC Chevy Classic // American vans with available 4x4 conversions 🔧\n\nFord Classics // The ultimate off-road van with custom 4x4 capabilities 💪\n\nReady to make a choice? Drop a comment if you have questions or visit us at FieldVan.com to explore more! And don’t forget to subscribe for more van guides and build tours.\n\nLearn more about Field Van and our builds on our website: https://fieldvan.com/\n\n🚨🚨Already own a van? Perfect, we also do conversions on most modern vans within model years back to 1997. 🚨🚨\n\n#vanlife #fieldvan #vanconversions #vanbuildseries #automobile \n\nSubscribe to our channel for more awesome van life content. \n\nSUBSCRIBE: @FieldVan\n—\nYOU MIGHT LIKE: \nhttps://youtu.be/-orAVchkXeA?si=tpp0tDvBac-bR1IA\nhttps://youtu.be/u4KTbjQoB14?si=4V6CZwW14FDgYEFE\n\n#Vanfeatures #Vandreams #Vangoals #VanTours #ChooseYourVan \n—\nWHO ARE WE?\n\nField Van is the premier choice for custom van conversions in Fresno, CA, and Reno, NV. Our team is passionate about the craftsmanship of building reliable, customized vans that let you create your own adventures on and off-trail. 🌲🚐\n—\nCONTACT US!\n\nFor collaborations or to share your field van in action, email us at info@fieldvan.com \n\nDon’t forget to subscribe to our channel!\n\nFollow us on our socials!\nInstagram: https://www.instagram.com/fieldvans/\nTwitter: https://twitter.com/fieldvan\nFacebook: https://www.facebook.com/Fieldvans", "Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE", "d36515d4-3784-42c0-bab6-2d4970f4851b", 10, [], 1112, false, "ysrwCdMX6fc", "https://www.youtube.com/watch?v=ysrwCdMX6fc", 65, "/downloads/Vanlife/2024-11-19 Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE/Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE [ysrwCdMX6fc].mp4", false, false, false, 1, ~U[2024-11-19 20:08:42Z], ~U[2026-07-11 14:59:18Z], ~U[2026-07-11 14:59:18Z], "#sprinter #promaster #transit #fords #gmc \n\nReady to hit the road but not sure which van type is right for you? Join Jonny and Brian at the Field Van Factory in Fresno as they guide you through all things camper vans! Whether you’re eyeing a Mercedes Sprinter for its tech features, a Ford Transit for its serviceability, or even the off-road king—the Ford Classic—this video breaks down what each model has to offer. We’ll walk you through each van’s specs, from seating to towing to where each model really shines. And like Brian says, “There is no perfect van for everybody, but there is a perfect van for you”. (1:06) \n\nNo matter your adventure, we’ve got options to fit your lifestyle and needs. From the popular Sprinter with tons of aftermarket options, to the rugged Ford Classic's off-road capability, learn what makes each van type unique and discover your perfect vehicle. Watch now, take notes, and get ready to start creating your adventure! \n\nField Van Chassis Models Covered:\n\nMercedes Sprinters // Available in multiple sizes and high-tech safety features 🚐\n\nRam ProMasters // Spacious interiors, lower maintenance costs, and great drivability 🛠️\n\nFord Transits // EcoBoost engine, all-wheel drive options, and factory-lifted Transit Trail 🌲\n\nGMC Chevy Classic // American vans with available 4x4 conversions 🔧\n\nFord Classics // The ultimate off-road van with custom 4x4 capabilities 💪\n\nReady to make a choice? Drop a comment if you have questions or visit us at FieldVan.com to explore more! And don’t forget to subscribe for more van guides and build tours.\n\nLearn more about Field Van and our builds on our website: https://fieldvan.com/\n\n🚨🚨Already own a van? Perfect, we also do conversions on most modern vans within model years back to 1997. 🚨🚨\n\n#vanlife #fieldvan #vanconversions #vanbuildseries #automobile \n\nSubscribe to our channel for more awesome van life content. \n\nSUBSCRIBE: @FieldVan\n—\nYOU MIGHT LIKE: \nhttps://youtu.be/-orAVchkXeA?si=tpp0tDvBac-bR1IA\nhttps://youtu.be/u4KTbjQoB14?si=4V6CZwW14FDgYEFE\n\n#Vanfeatures #Vandreams #Vangoals #VanTours #ChooseYourVan \n—\nWHO ARE WE?\n\nField Van is the premier choice for custom van conversions in Fresno, CA, and Reno, NV. Our team is passionate about the craftsmanship of building reliable, customized vans that let you create your own adventures on and off-trail. 🌲🚐\n—\nCONTACT US!\n\nFor collaborations or to share your field van in action, email us at info@fieldvan.com \n\nDon’t forget to subscribe to our channel!\n\nFollow us on our socials!\nInstagram: https://www.instagram.com/fieldvans/\nTwitter: https://twitter.com/fieldvan\nFacebook: https://www.facebook.com/Fieldvans", "Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE", 10, 1112, false, "ysrwCdMX6fc", "https://www.youtube.com/watch?v=ysrwCdMX6fc", "/downloads/Vanlife/2024-11-19 Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE/Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE [ysrwCdMX6fc].mp4", false, ~U[2024-11-19 20:08:42Z]] 10:59:18.034 [debug] QUERY OK source="sources" db=0.1ms idle=261.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:18.034 [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:59:18.034 [debug] QUERY OK source="media_items" db=0.1ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10204] 10:59:18.034 [debug] Current batch of media processed. Will check again in 1000ms 10:59:19.035 [debug] Current batch of media processed. Will check again in 1000ms 10:59:20.036 [debug] Current batch of media processed. Will check again in 1000ms 10:59:21.037 [debug] Current batch of media processed. Will check again in 1000ms 10:59:22.038 [debug] Current batch of media processed. Will check again in 1000ms 10:59:23.039 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I was not ready for this van tour because it is truly one of a kind. Shane went into detail getting to know his clients and went above and beyond with the attention to detail, not to mention some of the best parts and systems used in a van. Well done Shane!\n\nhttps://www.landshipcustoms.com/\n\nThank you to Kyle for filming and interviewing Shane. Make sure you check out Kyle's channel and see what he's building next.\n@ChopShopCrew \n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nWebsite: https://www.jarrodtocci.com\nMerch: https://jarrodtocci.com/store\nAmazon Store: https://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://www.youtube.com/channel/UCn9M1J4P_Ou3sMi0oym158Q\n\nLooking for Custom Van Build with company I work with:\nhttps://www.nomadikcustoms.com/\ninfo@nomadikcustoms.com\nThey also do all service work for vans:\nservice@nomadikcustoms.com\n\nBatteries: Big Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nGet off grid electrical at RV Connections:\nhttps://rvsolarconnections.com/ref/1063/\nCode: JARRODT5\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nLove HEST as my Camping Mattress:\nhttps://hest.com/\nDiscount Code: Stay Tuned as it’s Seasonal\n\nStanley for Camping Gear\nBlack Friday SALE: https://alnk.to/31s8T3J\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!\n\nTours Playlist:\nhttps://www.youtube.com/playlist?list=PLHrnevETejEMWv5kclacXhH6atb3ax6tl\nVlogs - Weekly - Building, Travel, Adventure:\nhttps://www.youtube.com/playlist?list=PLHrnevETejEMseRhXNwNjrs5BU7RLpvhg\nDIY Tiny Home Build - Start to Finish:\nhttps://www.youtube.com/watch?v=acXuMP6HWJs&list=PLHrnevETejEN1fXbXEbtc1EqTRAqi_2G1", "duration" => 2016, "filename" => "/downloads/Vanlife/2024-12-12 Is This the COOLEST Van Build You've Ever Seen?/Is This the COOLEST Van Build You've Ever Seen? [_sA4YC8QNL8].mkv", "id" => "_sA4YC8QNL8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_sA4YC8QNL8", "playlist_index" => 66, "timestamp" => 1734022840, "title" => "Is This the COOLEST Van Build You've Ever Seen?", "upload_date" => "20241212"} 10:59:23.040 [debug] QUERY OK source="sources" db=0.1ms idle=1485.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:59:23.040 [debug] QUERY OK source="sources" db=0.1ms idle=1485.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:23.040 [debug] QUERY OK source="media_items" db=0.4ms idle=1485.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-12 17:00:40Z], 10] 10:59:23.044 [debug] QUERY OK source="media_items" db=2.7ms idle=1264.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I was not ready for this van tour because it is truly one of a kind. Shane went into detail getting to know his clients and went above and beyond with the attention to detail, not to mention some of the best parts and systems used in a van. Well done Shane!\n\nhttps://www.landshipcustoms.com/\n\nThank you to Kyle for filming and interviewing Shane. Make sure you check out Kyle's channel and see what he's building next.\n@ChopShopCrew \n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nWebsite: https://www.jarrodtocci.com\nMerch: https://jarrodtocci.com/store\nAmazon Store: https://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://www.youtube.com/channel/UCn9M1J4P_Ou3sMi0oym158Q\n\nLooking for Custom Van Build with company I work with:\nhttps://www.nomadikcustoms.com/\ninfo@nomadikcustoms.com\nThey also do all service work for vans:\nservice@nomadikcustoms.com\n\nBatteries: Big Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nGet off grid electrical at RV Connections:\nhttps://rvsolarconnections.com/ref/1063/\nCode: JARRODT5\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nLove HEST as my Camping Mattress:\nhttps://hest.com/\nDiscount Code: Stay Tuned as it’s Seasonal\n\nStanley for Camping Gear\nBlack Friday SALE: https://alnk.to/31s8T3J\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!\n\nTours Playlist:\nhttps://www.youtube.com/playlist?list=PLHrnevETejEMWv5kclacXhH6atb3ax6tl\nVlogs - Weekly - Building, Travel, Adventure:\nhttps://www.youtube.com/playlist?list=PLHrnevETejEMseRhXNwNjrs5BU7RLpvhg\nDIY Tiny Home Build - Start to Finish:\nhttps://www.youtube.com/watch?v=acXuMP6HWJs&list=PLHrnevETejEN1fXbXEbtc1EqTRAqi_2G1", "Is This the COOLEST Van Build You've Ever Seen?", "9e1729bd-bdad-460c-b574-4d8f0b86c177", 10, [], 2016, false, "_sA4YC8QNL8", "https://www.youtube.com/watch?v=_sA4YC8QNL8", 66, "/downloads/Vanlife/2024-12-12 Is This the COOLEST Van Build You've Ever Seen?/Is This the COOLEST Van Build You've Ever Seen? [_sA4YC8QNL8].mkv", false, false, false, 1, ~U[2024-12-12 17:00:40Z], ~U[2026-07-11 14:59:23Z], ~U[2026-07-11 14:59:23Z], "I was not ready for this van tour because it is truly one of a kind. Shane went into detail getting to know his clients and went above and beyond with the attention to detail, not to mention some of the best parts and systems used in a van. Well done Shane!\n\nhttps://www.landshipcustoms.com/\n\nThank you to Kyle for filming and interviewing Shane. Make sure you check out Kyle's channel and see what he's building next.\n@ChopShopCrew \n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nWebsite: https://www.jarrodtocci.com\nMerch: https://jarrodtocci.com/store\nAmazon Store: https://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://www.youtube.com/channel/UCn9M1J4P_Ou3sMi0oym158Q\n\nLooking for Custom Van Build with company I work with:\nhttps://www.nomadikcustoms.com/\ninfo@nomadikcustoms.com\nThey also do all service work for vans:\nservice@nomadikcustoms.com\n\nBatteries: Big Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nGet off grid electrical at RV Connections:\nhttps://rvsolarconnections.com/ref/1063/\nCode: JARRODT5\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nLove HEST as my Camping Mattress:\nhttps://hest.com/\nDiscount Code: Stay Tuned as it’s Seasonal\n\nStanley for Camping Gear\nBlack Friday SALE: https://alnk.to/31s8T3J\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!\n\nTours Playlist:\nhttps://www.youtube.com/playlist?list=PLHrnevETejEMWv5kclacXhH6atb3ax6tl\nVlogs - Weekly - Building, Travel, Adventure:\nhttps://www.youtube.com/playlist?list=PLHrnevETejEMseRhXNwNjrs5BU7RLpvhg\nDIY Tiny Home Build - Start to Finish:\nhttps://www.youtube.com/watch?v=acXuMP6HWJs&list=PLHrnevETejEN1fXbXEbtc1EqTRAqi_2G1", "Is This the COOLEST Van Build You've Ever Seen?", 10, 2016, false, "_sA4YC8QNL8", "https://www.youtube.com/watch?v=_sA4YC8QNL8", "/downloads/Vanlife/2024-12-12 Is This the COOLEST Van Build You've Ever Seen?/Is This the COOLEST Van Build You've Ever Seen? [_sA4YC8QNL8].mkv", false, ~U[2024-12-12 17:00:40Z]] 10:59:23.044 [debug] QUERY OK source="sources" db=0.1ms idle=266.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:23.044 [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:59:23.045 [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 [10206] 10:59:23.045 [debug] Current batch of media processed. Will check again in 1000ms 10:59:24.045 [debug] Current batch of media processed. Will check again in 1000ms 10:59:25.046 [debug] Current batch of media processed. Will check again in 1000ms 10:59:26.047 [debug] Current batch of media processed. Will check again in 1000ms 10:59:27.048 [debug] Current batch of media processed. Will check again in 1000ms 10:59:28.049 [debug] Current batch of media processed. Will check again in 1000ms 10:59:29.050 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Panda32kWh (affiliate links): https://www.docanpower.com/panda-52v-628ah-32kwh-assembled-pack-usa?tracking=FpVzRYFtgrS12z0RHrWmDLEOnMNfPFEhKUpja4A5onGyClxW3tGQADC6jRnxYrnG\n\nYixiang 32kWh: https://yixiangpower.com/products/pre-sale-yixiang-us-stock-eve-mb56-finished-battery-pack-32kwh-51-2v-16s-628ah-eve-lifepo4-cell-lithium-battery-estimated-shipping-date-dec-20th?sca_ref=9207522.jYuzmwEjUpH\n\n*Tired of getting ripped off? Check out my \"Will Prowse Approved\" solar product recommendations below!*\n\n*12V Batteries*\nhttps://www.mobile-solarpower.com/lithium-batteries.html\n\n*48V Batteries*\nhttps://www.mobile-solarpower.com/48v-batteries.html\n\n*Offgrid Inverter System Builder*\nhttps://www.mobile-solarpower.com/48v-complete-system-blueprint-559371.html\n\n*Hybrid Inverter System Builder*\nhttps://www.mobile-solarpower.com/code-compliant-48v-offgrid-system.html\n\n*Mobile Handtruck System Builder (very popular!)*\nhttps://www.mobile-solarpower.com/mobile-48v-system.html\n\n*Solar Panels*\nhttps://www.mobile-solarpower.com/300w-solar-panels.html\n\n*Ground Mount Solar Racking*\nhttps://www.mobile-solarpower.com/ground-mount-racks.html\n\n*Wire, Lugs and Busbars*\nhttps://www.mobile-solarpower.com/wire-and-connectors.html\n\n*Tools*\nhttps://www.mobile-solarpower.com/tools.html\n\n*Fuses and Circuit Breakers*\nhttps://www.mobile-solarpower.com/fuses.html\n\n*Plug-N-Play Solar Systems*\nEcoflow, Anker And Bluetti! So many models to choose from. See my current recommendations here:\nhttps://www.mobile-solarpower.com/full-size-systems.html\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Need to build a large DIY system? Need a trustworthy solar distributor? These are my favorites:*\n\n*Signature Solar*\nCreator of EG4! Solar Minisplits, Victron and More! Largest Solar Store Online.\nIf you want $50 off, please use my link below and coupon code \"DIYSOLAR50\":\nhttps://signaturesolar.com/?ref=cPwLcVc0SW-BjN\n\n*Current Connected*\nBest Prices for EG4, Victron, Midnite and so much more! Fast Shipping and Highest Rated Customer Service:\nhttps://currentconnected.com/?ref=wp\n\n0:00 Panda Time!\n1:26 Tear Down\n2:52 200A Charge And Interface\n4:02 Software Problems\n6:31 200A Load Test\n7:36 Strange SOC Problem\n8:03 Capacity Test\n8:24 Final Test\n8:51 Testing Internals\n10:33 Panda VS Yixiang\n12:05 Conclusion\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Join our DIY Solar Community* \nNeed more help? Join the largest solar forum on the internet for beginners and professionals alike. 140,000 members and counting!\nhttps://www.diysolarforum.com\n\n*Check Out My Free Book*\nBest-selling and beginner-friendly guidebook to off-grid 12V solar!\nhttps://www.mobile-solarpower.com/the-book.html\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Contact Information:*\nI am NOT available for personal solar system consult! If you wish to contact me, this is my direct email: williamprowsediysolar@gmail.com\n*FTC Disclosure Statement and Disclaimers:*\nEvery video includes paid promotion or sponsorship (such as free products for review). Some links on this YouTube channel may be affiliate links. We may get paid if you buy something or take an action after clicking one of these. My videos are for educational purposes only. Information is subject to change/update at any time. Electricity is DANGEROUS and can kill. Be smart and use common sense :) DIY Solar Power with Will Prowse is a participant in the Amazon Services LLC Associates Program, An affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com", "duration" => 837, "filename" => "/downloads/Vanlife/2026-01-28 Docan Energy "Panda": 32kWh for $2,530!/Docan Energy "Panda": 32kWh for $2,530! [Uo5dimvOWgs].mkv", "id" => "Uo5dimvOWgs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Uo5dimvOWgs", "playlist_index" => 67, "timestamp" => 1769641320, "title" => "Docan Energy \"Panda\": 32kWh for $2,530!", "upload_date" => "20260128"} 10:59:29.051 [debug] QUERY OK source="sources" db=0.1ms idle=496.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:59:29.051 [debug] QUERY OK source="sources" db=0.1ms idle=496.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:29.051 [debug] QUERY OK source="media_items" db=0.3ms idle=497.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-28 23:02:00Z], 10] 10:59:29.054 [debug] QUERY OK source="media_items" db=1.8ms idle=497.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Panda32kWh (affiliate links): https://www.docanpower.com/panda-52v-628ah-32kwh-assembled-pack-usa?tracking=FpVzRYFtgrS12z0RHrWmDLEOnMNfPFEhKUpja4A5onGyClxW3tGQADC6jRnxYrnG\n\nYixiang 32kWh: https://yixiangpower.com/products/pre-sale-yixiang-us-stock-eve-mb56-finished-battery-pack-32kwh-51-2v-16s-628ah-eve-lifepo4-cell-lithium-battery-estimated-shipping-date-dec-20th?sca_ref=9207522.jYuzmwEjUpH\n\n*Tired of getting ripped off? Check out my \"Will Prowse Approved\" solar product recommendations below!*\n\n*12V Batteries*\nhttps://www.mobile-solarpower.com/lithium-batteries.html\n\n*48V Batteries*\nhttps://www.mobile-solarpower.com/48v-batteries.html\n\n*Offgrid Inverter System Builder*\nhttps://www.mobile-solarpower.com/48v-complete-system-blueprint-559371.html\n\n*Hybrid Inverter System Builder*\nhttps://www.mobile-solarpower.com/code-compliant-48v-offgrid-system.html\n\n*Mobile Handtruck System Builder (very popular!)*\nhttps://www.mobile-solarpower.com/mobile-48v-system.html\n\n*Solar Panels*\nhttps://www.mobile-solarpower.com/300w-solar-panels.html\n\n*Ground Mount Solar Racking*\nhttps://www.mobile-solarpower.com/ground-mount-racks.html\n\n*Wire, Lugs and Busbars*\nhttps://www.mobile-solarpower.com/wire-and-connectors.html\n\n*Tools*\nhttps://www.mobile-solarpower.com/tools.html\n\n*Fuses and Circuit Breakers*\nhttps://www.mobile-solarpower.com/fuses.html\n\n*Plug-N-Play Solar Systems*\nEcoflow, Anker And Bluetti! So many models to choose from. See my current recommendations here:\nhttps://www.mobile-solarpower.com/full-size-systems.html\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Need to build a large DIY system? Need a trustworthy solar distributor? These are my favorites:*\n\n*Signature Solar*\nCreator of EG4! Solar Minisplits, Victron and More! Largest Solar Store Online.\nIf you want $50 off, please use my link below and coupon code \"DIYSOLAR50\":\nhttps://signaturesolar.com/?ref=cPwLcVc0SW-BjN\n\n*Current Connected*\nBest Prices for EG4, Victron, Midnite and so much more! Fast Shipping and Highest Rated Customer Service:\nhttps://currentconnected.com/?ref=wp\n\n0:00 Panda Time!\n1:26 Tear Down\n2:52 200A Charge And Interface\n4:02 Software Problems\n6:31 200A Load Test\n7:36 Strange SOC Problem\n8:03 Capacity Test\n8:24 Final Test\n8:51 Testing Internals\n10:33 Panda VS Yixiang\n12:05 Conclusion\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Join our DIY Solar Community* \nNeed more help? Join the largest solar forum on the internet for beginners and professionals alike. 140,000 members and counting!\nhttps://www.diysolarforum.com\n\n*Check Out My Free Book*\nBest-selling and beginner-friendly guidebook to off-grid 12V solar!\nhttps://www.mobile-solarpower.com/the-book.html\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Contact Information:*\nI am NOT available for personal solar system consult! If you wish to contact me, this is my direct email: williamprowsediysolar@gmail.com\n*FTC Disclosure Statement and Disclaimers:*\nEvery video includes paid promotion or sponsorship (such as free products for review). Some links on this YouTube channel may be affiliate links. We may get paid if you buy something or take an action after clicking one of these. My videos are for educational purposes only. Information is subject to change/update at any time. Electricity is DANGEROUS and can kill. Be smart and use common sense :) DIY Solar Power with Will Prowse is a participant in the Amazon Services LLC Associates Program, An affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com", "Docan Energy \"Panda\": 32kWh for $2,530!", "c48156f6-da8f-4f65-9180-e6ae938880d0", 10, [], 837, false, "Uo5dimvOWgs", "https://www.youtube.com/watch?v=Uo5dimvOWgs", 67, "/downloads/Vanlife/2026-01-28 Docan Energy "Panda": 32kWh for $2,530!/Docan Energy "Panda": 32kWh for $2,530! [Uo5dimvOWgs].mkv", false, false, false, 1, ~U[2026-01-28 23:02:00Z], ~U[2026-07-11 14:59:29Z], ~U[2026-07-11 14:59:29Z], "Panda32kWh (affiliate links): https://www.docanpower.com/panda-52v-628ah-32kwh-assembled-pack-usa?tracking=FpVzRYFtgrS12z0RHrWmDLEOnMNfPFEhKUpja4A5onGyClxW3tGQADC6jRnxYrnG\n\nYixiang 32kWh: https://yixiangpower.com/products/pre-sale-yixiang-us-stock-eve-mb56-finished-battery-pack-32kwh-51-2v-16s-628ah-eve-lifepo4-cell-lithium-battery-estimated-shipping-date-dec-20th?sca_ref=9207522.jYuzmwEjUpH\n\n*Tired of getting ripped off? Check out my \"Will Prowse Approved\" solar product recommendations below!*\n\n*12V Batteries*\nhttps://www.mobile-solarpower.com/lithium-batteries.html\n\n*48V Batteries*\nhttps://www.mobile-solarpower.com/48v-batteries.html\n\n*Offgrid Inverter System Builder*\nhttps://www.mobile-solarpower.com/48v-complete-system-blueprint-559371.html\n\n*Hybrid Inverter System Builder*\nhttps://www.mobile-solarpower.com/code-compliant-48v-offgrid-system.html\n\n*Mobile Handtruck System Builder (very popular!)*\nhttps://www.mobile-solarpower.com/mobile-48v-system.html\n\n*Solar Panels*\nhttps://www.mobile-solarpower.com/300w-solar-panels.html\n\n*Ground Mount Solar Racking*\nhttps://www.mobile-solarpower.com/ground-mount-racks.html\n\n*Wire, Lugs and Busbars*\nhttps://www.mobile-solarpower.com/wire-and-connectors.html\n\n*Tools*\nhttps://www.mobile-solarpower.com/tools.html\n\n*Fuses and Circuit Breakers*\nhttps://www.mobile-solarpower.com/fuses.html\n\n*Plug-N-Play Solar Systems*\nEcoflow, Anker And Bluetti! So many models to choose from. See my current recommendations here:\nhttps://www.mobile-solarpower.com/full-size-systems.html\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Need to build a large DIY system? Need a trustworthy solar distributor? These are my favorites:*\n\n*Signature Solar*\nCreator of EG4! Solar Minisplits, Victron and More! Largest Solar Store Online.\nIf you want $50 off, please use my link below and coupon code \"DIYSOLAR50\":\nhttps://signaturesolar.com/?ref=cPwLcVc0SW-BjN\n\n*Current Connected*\nBest Prices for EG4, Victron, Midnite and so much more! Fast Shipping and Highest Rated Customer Service:\nhttps://currentconnected.com/?ref=wp\n\n0:00 Panda Time!\n1:26 Tear Down\n2:52 200A Charge And Interface\n4:02 Software Problems\n6:31 200A Load Test\n7:36 Strange SOC Problem\n8:03 Capacity Test\n8:24 Final Test\n8:51 Testing Internals\n10:33 Panda VS Yixiang\n12:05 Conclusion\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Join our DIY Solar Community* \nNeed more help? Join the largest solar forum on the internet for beginners and professionals alike. 140,000 members and counting!\nhttps://www.diysolarforum.com\n\n*Check Out My Free Book*\nBest-selling and beginner-friendly guidebook to off-grid 12V solar!\nhttps://www.mobile-solarpower.com/the-book.html\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Contact Information:*\nI am NOT available for personal solar system consult! If you wish to contact me, this is my direct email: williamprowsediysolar@gmail.com\n*FTC Disclosure Statement and Disclaimers:*\nEvery video includes paid promotion or sponsorship (such as free products for review). Some links on this YouTube channel may be affiliate links. We may get paid if you buy something or take an action after clicking one of these. My videos are for educational purposes only. Information is subject to change/update at any time. Electricity is DA (truncated) 10:59:29.054 [debug] QUERY OK source="sources" db=0.1ms idle=269.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:29.054 [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:59:29.055 [debug] QUERY OK source="media_items" db=0.1ms idle=3.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10209] 10:59:29.055 [debug] Current batch of media processed. Will check again in 1000ms 10:59:30.055 [debug] Current batch of media processed. Will check again in 1000ms 10:59:30.476 [info] {"source":"oban","duration":1374,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":1} 10:59:31.056 [debug] Current batch of media processed. Will check again in 1000ms 10:59:32.057 [debug] Current batch of media processed. Will check again in 1000ms 10:59:33.058 [debug] Current batch of media processed. Will check again in 1000ms 10:59:34.059 [debug] Current batch of media processed. Will check again in 1000ms 10:59:35.060 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "EarthRoamer has long been a symbol of luxury and capability in terms of expedition vehicles. While that luxury of the Earthroamer can be quite expensive, there are some Earthroamer alternatives available in the expedition vehicles market. So, in this video, we'll showcase the 25 Earthroamer Alternatives You Can Consider, including some of the best expedition vehicles.\n\nEarthRoamer Alternatives List:\n\n00:00 - Introduction\n\n00:46 - Storyteller GXV HILT 2026 Model\n\n02:41 - 27North Trekker \n\n04:25 - Owl OTX RV\n\n06:16 - Wander Voyager Chevy Silverado 6500HD\n\n08:04 - Box Manufaktur Denali 720Q\n\n09:56 - Rossmonster Ford 550 Custom Build\n\n11:37 - ADV Mobil Ford F600 XLT\n\n13:24 - Jinghang RV F350\n\n14:52 - Tiger Adventure Vehicle Panthera\n\n16:34 - AT Overland Aterra\n\n18:30 - Accolade XT Unicat Achat\n\n20:09 - Alaskan Campers 850 FB\n\n21:47 - Rossmonster Havn\n\n23:37 - Entegra Coach \n\n25:31 - Wanderbox Outpost 35\n\n27:15 - Dynamax Europa\n\n29:05 - Loki Falcon X15\n\n30:38 - East To West Bravado\n\n32:19 - Dynamax Isata 5\n\n33:56 - Jayco Greyhawk XL\n\n35:48 - Supertramp Megatron \n\n37:05 - TruckHouse BCR \n\n38:25 - Krug Expedition Bedrock XT2\n\n39:40 - Adrenalin Industries AWOL\n-----------------------------------------------------------------------------------------------------------------\nBusiness mail: mailtrailingoffraod@gmail.com\n------------------------------------------------------------------------------------------------------------------\nMusic Source & Credit: YouTube Audio Library\n-----------------------------------------------------------------------------------------------------------------\nVideo you may also like:\n* https://youtu.be/Jl7nrj75MoA\n* https://youtu.be/XYXf2jipyUM\n* https://youtu.be/FM--WjXMiCg\n-----------------------------------------------------------------------------------------------------------------\n* 25 EarthRoamer Alternatives You Can Consider explores some of the most capable expedition vehicles and overlanding trucks for those who dream of going off-grid without the price tag of an EarthRoamer. Models like the EarthRoamer LTi, EarthRoamer LTx, and EarthRoamer SX are legendary, but several EarthRoamer alternatives deliver similar comfort and durability. From a rugged expedition truck to a well-equipped off road camper, these builds are made for serious overlanding and off-road adventures. You’ll also find impressive rigs from Global Expedition Vehicles, truck camper setups, and even converted van life builds that redefine mobility. Whether you’re eyeing a 4x4, 6x6, or full offroad RV, these expedition vehicle 4x4 options are built to handle it all. Our truck camper tour and converted van tour picks show the versatility of modern builds. Perfect for fans of off grid living, overland, and tiny house tour lifestyles, this guide showcases the best expedition and off-road trucks worth exploring.\n-----------------------------------------------------------------------------------------------------------------\nDisclaimer:\n* The following video abides by the YouTube Community Guideline. The footage used in this video is for educational purposes.\n* The footage used in this video follows the Fair Usage Policy “Under Section 107” of the “Copyright Act 1976”. If you have any copyright issues, please send us an email or let us know by commenting below.\n* Some of our content may contain affiliate links, from which we earn some commission, that support us in running this channel.\n\n#expedition #overlanding #4x4 #earthroamer", "duration" => 2591, "filename" => "/downloads/Vanlife/2026-01-13 25 Earthroamer Alternatives You Can Take Anywhere | Expedition Vehicles/25 Earthroamer Alternatives You Can Take Anywhere | Expedition Vehicles [boFEGpr84WI].mkv", "id" => "boFEGpr84WI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=boFEGpr84WI", "playlist_index" => 68, "timestamp" => 1768312871, "title" => "25 Earthroamer Alternatives You Can Take Anywhere | Expedition Vehicles", "upload_date" => "20260113"} 10:59:35.061 [debug] QUERY OK source="sources" db=0.2ms idle=1271.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:59:35.061 [debug] QUERY OK source="sources" db=0.2ms idle=506.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:35.062 [debug] QUERY OK source="media_items" db=0.4ms idle=507.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-13 14:01:11Z], 10] 10:59:35.064 [debug] QUERY OK source="media_items" db=1.3ms idle=508.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["EarthRoamer has long been a symbol of luxury and capability in terms of expedition vehicles. While that luxury of the Earthroamer can be quite expensive, there are some Earthroamer alternatives available in the expedition vehicles market. So, in this video, we'll showcase the 25 Earthroamer Alternatives You Can Consider, including some of the best expedition vehicles.\n\nEarthRoamer Alternatives List:\n\n00:00 - Introduction\n\n00:46 - Storyteller GXV HILT 2026 Model\n\n02:41 - 27North Trekker \n\n04:25 - Owl OTX RV\n\n06:16 - Wander Voyager Chevy Silverado 6500HD\n\n08:04 - Box Manufaktur Denali 720Q\n\n09:56 - Rossmonster Ford 550 Custom Build\n\n11:37 - ADV Mobil Ford F600 XLT\n\n13:24 - Jinghang RV F350\n\n14:52 - Tiger Adventure Vehicle Panthera\n\n16:34 - AT Overland Aterra\n\n18:30 - Accolade XT Unicat Achat\n\n20:09 - Alaskan Campers 850 FB\n\n21:47 - Rossmonster Havn\n\n23:37 - Entegra Coach \n\n25:31 - Wanderbox Outpost 35\n\n27:15 - Dynamax Europa\n\n29:05 - Loki Falcon X15\n\n30:38 - East To West Bravado\n\n32:19 - Dynamax Isata 5\n\n33:56 - Jayco Greyhawk XL\n\n35:48 - Supertramp Megatron \n\n37:05 - TruckHouse BCR \n\n38:25 - Krug Expedition Bedrock XT2\n\n39:40 - Adrenalin Industries AWOL\n-----------------------------------------------------------------------------------------------------------------\nBusiness mail: mailtrailingoffraod@gmail.com\n------------------------------------------------------------------------------------------------------------------\nMusic Source & Credit: YouTube Audio Library\n-----------------------------------------------------------------------------------------------------------------\nVideo you may also like:\n* https://youtu.be/Jl7nrj75MoA\n* https://youtu.be/XYXf2jipyUM\n* https://youtu.be/FM--WjXMiCg\n-----------------------------------------------------------------------------------------------------------------\n* 25 EarthRoamer Alternatives You Can Consider explores some of the most capable expedition vehicles and overlanding trucks for those who dream of going off-grid without the price tag of an EarthRoamer. Models like the EarthRoamer LTi, EarthRoamer LTx, and EarthRoamer SX are legendary, but several EarthRoamer alternatives deliver similar comfort and durability. From a rugged expedition truck to a well-equipped off road camper, these builds are made for serious overlanding and off-road adventures. You’ll also find impressive rigs from Global Expedition Vehicles, truck camper setups, and even converted van life builds that redefine mobility. Whether you’re eyeing a 4x4, 6x6, or full offroad RV, these expedition vehicle 4x4 options are built to handle it all. Our truck camper tour and converted van tour picks show the versatility of modern builds. Perfect for fans of off grid living, overland, and tiny house tour lifestyles, this guide showcases the best expedition and off-road trucks worth exploring.\n-----------------------------------------------------------------------------------------------------------------\nDisclaimer:\n* The following video abides by the YouTube Community Guideline. The footage used in this video is for educational purposes.\n* The footage used in this video follows the Fair Usage Policy “Under Section 107” of the “Copyright Act 1976”. If you have any copyright issues, please send us an email or let us know by commenting below.\n* Some of our content may contain affiliate links, from which we earn some commission, that support us in running this channel.\n\n#expedition #overlanding #4x4 #earthroamer", "25 Earthroamer Alternatives You Can Take Anywhere | Expedition Vehicles", "bc8d235e-abd2-4592-805a-fc97e927ec16", 10, [], 2591, false, "boFEGpr84WI", "https://www.youtube.com/watch?v=boFEGpr84WI", 68, "/downloads/Vanlife/2026-01-13 25 Earthroamer Alternatives You Can Take Anywhere | Expedition Vehicles/25 Earthroamer Alternatives You Can Take Anywhere | Expedition Vehicles [boFEGpr84WI].mkv", false, false, false, 1, ~U[2026-01-13 14:01:11Z], ~U[2026-07-11 14:59:35Z], ~U[2026-07-11 14:59:35Z], "EarthRoamer has long been a symbol of luxury and capability in terms of expedition vehicles. While that luxury of the Earthroamer can be quite expensive, there are some Earthroamer alternatives available in the expedition vehicles market. So, in this video, we'll showcase the 25 Earthroamer Alternatives You Can Consider, including some of the best expedition vehicles.\n\nEarthRoamer Alternatives List:\n\n00:00 - Introduction\n\n00:46 - Storyteller GXV HILT 2026 Model\n\n02:41 - 27North Trekker \n\n04:25 - Owl OTX RV\n\n06:16 - Wander Voyager Chevy Silverado 6500HD\n\n08:04 - Box Manufaktur Denali 720Q\n\n09:56 - Rossmonster Ford 550 Custom Build\n\n11:37 - ADV Mobil Ford F600 XLT\n\n13:24 - Jinghang RV F350\n\n14:52 - Tiger Adventure Vehicle Panthera\n\n16:34 - AT Overland Aterra\n\n18:30 - Accolade XT Unicat Achat\n\n20:09 - Alaskan Campers 850 FB\n\n21:47 - Rossmonster Havn\n\n23:37 - Entegra Coach \n\n25:31 - Wanderbox Outpost 35\n\n27:15 - Dynamax Europa\n\n29:05 - Loki Falcon X15\n\n30:38 - East To West Bravado\n\n32:19 - Dynamax Isata 5\n\n33:56 - Jayco Greyhawk XL\n\n35:48 - Supertramp Megatron \n\n37:05 - TruckHouse BCR \n\n38:25 - Krug Expedition Bedrock XT2\n\n39:40 - Adrenalin Industries AWOL\n-----------------------------------------------------------------------------------------------------------------\nBusiness mail: mailtrailingoffraod@gmail.com\n------------------------------------------------------------------------------------------------------------------\nMusic Source & Credit: YouTube Audio Library\n-----------------------------------------------------------------------------------------------------------------\nVideo you may also like:\n* https://youtu.be/Jl7nrj75MoA\n* https://youtu.be/XYXf2jipyUM\n* https://youtu.be/FM--WjXMiCg\n-----------------------------------------------------------------------------------------------------------------\n* 25 EarthRoamer Alternatives You Can Consider explores some of the most capable expedition vehicles and overlanding trucks for those who dream of going off-grid without the price tag of an EarthRoamer. Models like the EarthRoamer LTi, EarthRoamer LTx, and EarthRoamer SX are legendary, but several EarthRoamer alternatives deliver similar comfort and durability. From a rugged expedition truck to a well-equipped off road camper, these builds are made for serious overlanding and off-road adventures. You’ll also find impressive rigs from Global Expedition Vehicles, truck camper setups, and even converted van life builds that redefine mobility. Whether you’re eyeing a 4x4, 6x6, or full offroad RV, these expedition vehicle 4x4 options are built to handle it all. Our truck camper tour and converted van tour picks show the versatility of modern builds. Perfect for fans of off grid living, overland, and tiny house tour lifestyles, this guide showcases the best expedition and off-road trucks worth exploring.\n-----------------------------------------------------------------------------------------------------------------\nDisclaimer:\n* The following video abides by the YouTube Community Guideline. The footage used in this video is for educational purposes.\n* The footage used in this video follows the Fair Usage Policy “Under Section 107” of the “Copyright Act 1976”. If you have any copyright (truncated) 10:59:35.064 [debug] QUERY OK source="sources" db=0.2ms idle=273.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:35.065 [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:59:35.065 [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 [10210] 10:59:35.065 [debug] Current batch of media processed. Will check again in 1000ms 10:59:36.066 [debug] Current batch of media processed. Will check again in 1000ms 10:59:37.067 [debug] Current batch of media processed. Will check again in 1000ms 10:59:38.068 [debug] Current batch of media processed. Will check again in 1000ms 10:59:39.069 [debug] Current batch of media processed. Will check again in 1000ms 10:59:40.070 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Thor is hitting the road for a full month in his brand-new Rossmönster Baja Plus, and today he’s giving you an in-depth walkthrough of how this rig is packed, organized, and dialed for long-term travel across the country. If you’ve ever wondered what it looks like to live out of a premium overland expedition vehicle for weeks at a time, this is the most detailed tour yet.\n\nIn this video, Thor breaks down every part of his Baja Plus camper, including the upgraded suspension, off-grid electrical system, interior layout, gear organization, exterior storage, water setup, bed configuration, and the small-but-mighty features that make the Baja Plus one of the most capable road trip rigs on the market. This is the real, ready-to-roll setup — nothing staged, just a fully loaded Baja Plus ready for a month of van life.\n\nWhether you’re researching your own Sprinter or truck build, exploring the world of overlanding, or dreaming up your next off-grid adventure, this walkthrough gives you a candid look at how a professional builder outfits their personal rig for life on the road.\n\nWhat you’ll see in this walkthrough:\n\n• Full tour of Thor’s new Rossmönster Baja Plus\n• Real-world storage and packing for a month-long trip\n• Kitchen, water, and cooking systems\n• Bed and interior layout for long-term comfort\n• Off-grid power system overview\n• Exterior storage, suspension, and recovery gear\n• Lighting, heating, insulation, and cold-weather prep\n• Behind-the-scenes look at how Rossmönster rigs are used by the people who build them\n\nRossmonster, Rossmönster, Baja Plus, Baja truck camper, Sprinter overland build, van life tour, van build tour, off grid camper, expedition vehicle, overlanding setup, adventure rig, camper van walkthrough, 4x4 Sprinter camper, off-road camper tour, van life setup, best overland vehicles, month-long van trip, overland truck camper, off-road RV, modern overland rig, camper packing tips, real-world van life, full-time vanlife setup, premium van conversion.", "duration" => 907, "filename" => "/downloads/Vanlife/2025-12-03 The Baja Plus is packed for a month-long trip#/The Baja Plus is packed for a month-long trip. [GKHBXkXh81k].mkv", "id" => "GKHBXkXh81k", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GKHBXkXh81k", "playlist_index" => 69, "timestamp" => 1764803244, "title" => "The Baja Plus is packed for a month-long trip.", "upload_date" => "20251203"} 10:59:40.071 [debug] QUERY OK source="sources" db=0.1ms idle=1516.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:59:40.071 [debug] QUERY OK source="sources" db=0.1ms idle=1516.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:40.072 [debug] QUERY OK source="media_items" db=0.3ms idle=1517.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-03 23:07:24Z], 10] 10:59:40.074 [debug] QUERY OK source="media_items" db=1.8ms idle=1277.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Thor is hitting the road for a full month in his brand-new Rossmönster Baja Plus, and today he’s giving you an in-depth walkthrough of how this rig is packed, organized, and dialed for long-term travel across the country. If you’ve ever wondered what it looks like to live out of a premium overland expedition vehicle for weeks at a time, this is the most detailed tour yet.\n\nIn this video, Thor breaks down every part of his Baja Plus camper, including the upgraded suspension, off-grid electrical system, interior layout, gear organization, exterior storage, water setup, bed configuration, and the small-but-mighty features that make the Baja Plus one of the most capable road trip rigs on the market. This is the real, ready-to-roll setup — nothing staged, just a fully loaded Baja Plus ready for a month of van life.\n\nWhether you’re researching your own Sprinter or truck build, exploring the world of overlanding, or dreaming up your next off-grid adventure, this walkthrough gives you a candid look at how a professional builder outfits their personal rig for life on the road.\n\nWhat you’ll see in this walkthrough:\n\n• Full tour of Thor’s new Rossmönster Baja Plus\n• Real-world storage and packing for a month-long trip\n• Kitchen, water, and cooking systems\n• Bed and interior layout for long-term comfort\n• Off-grid power system overview\n• Exterior storage, suspension, and recovery gear\n• Lighting, heating, insulation, and cold-weather prep\n• Behind-the-scenes look at how Rossmönster rigs are used by the people who build them\n\nRossmonster, Rossmönster, Baja Plus, Baja truck camper, Sprinter overland build, van life tour, van build tour, off grid camper, expedition vehicle, overlanding setup, adventure rig, camper van walkthrough, 4x4 Sprinter camper, off-road camper tour, van life setup, best overland vehicles, month-long van trip, overland truck camper, off-road RV, modern overland rig, camper packing tips, real-world van life, full-time vanlife setup, premium van conversion.", "The Baja Plus is packed for a month-long trip.", "e2a4c812-1257-4487-a291-8f4648e1a007", 10, [], 907, false, "GKHBXkXh81k", "https://www.youtube.com/watch?v=GKHBXkXh81k", 69, "/downloads/Vanlife/2025-12-03 The Baja Plus is packed for a month-long trip#/The Baja Plus is packed for a month-long trip. [GKHBXkXh81k].mkv", false, false, false, 1, ~U[2025-12-03 23:07:24Z], ~U[2026-07-11 14:59:40Z], ~U[2026-07-11 14:59:40Z], "Thor is hitting the road for a full month in his brand-new Rossmönster Baja Plus, and today he’s giving you an in-depth walkthrough of how this rig is packed, organized, and dialed for long-term travel across the country. If you’ve ever wondered what it looks like to live out of a premium overland expedition vehicle for weeks at a time, this is the most detailed tour yet.\n\nIn this video, Thor breaks down every part of his Baja Plus camper, including the upgraded suspension, off-grid electrical system, interior layout, gear organization, exterior storage, water setup, bed configuration, and the small-but-mighty features that make the Baja Plus one of the most capable road trip rigs on the market. This is the real, ready-to-roll setup — nothing staged, just a fully loaded Baja Plus ready for a month of van life.\n\nWhether you’re researching your own Sprinter or truck build, exploring the world of overlanding, or dreaming up your next off-grid adventure, this walkthrough gives you a candid look at how a professional builder outfits their personal rig for life on the road.\n\nWhat you’ll see in this walkthrough:\n\n• Full tour of Thor’s new Rossmönster Baja Plus\n• Real-world storage and packing for a month-long trip\n• Kitchen, water, and cooking systems\n• Bed and interior layout for long-term comfort\n• Off-grid power system overview\n• Exterior storage, suspension, and recovery gear\n• Lighting, heating, insulation, and cold-weather prep\n• Behind-the-scenes look at how Rossmönster rigs are used by the people who build them\n\nRossmonster, Rossmönster, Baja Plus, Baja truck camper, Sprinter overland build, van life tour, van build tour, off grid camper, expedition vehicle, overlanding setup, adventure rig, camper van walkthrough, 4x4 Sprinter camper, off-road camper tour, van life setup, best overland vehicles, month-long van trip, overland truck camper, off-road RV, modern overland rig, camper packing tips, real-world van life, full-time vanlife setup, premium van conversion.", "The Baja Plus is packed for a month-long trip.", 10, 907, false, "GKHBXkXh81k", "https://www.youtube.com/watch?v=GKHBXkXh81k", "/downloads/Vanlife/2025-12-03 The Baja Plus is packed for a month-long trip#/The Baja Plus is packed for a month-long trip. [GKHBXkXh81k].mkv", false, ~U[2025-12-03 23:07:24Z]] 10:59:40.074 [debug] QUERY OK source="sources" db=0.1ms idle=278.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:40.074 [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:59:40.075 [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 [10213] 10:59:40.075 [debug] Current batch of media processed. Will check again in 1000ms 10:59:41.076 [debug] Current batch of media processed. Will check again in 1000ms 10:59:42.077 [debug] Current batch of media processed. Will check again in 1000ms 10:59:43.078 [debug] Current batch of media processed. Will check again in 1000ms 10:59:44.079 [debug] Current batch of media processed. Will check again in 1000ms 10:59:45.080 [debug] Current batch of media processed. Will check again in 1000ms 10:59:46.081 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Gear I used (I'm only listing the good stuff. Some of these are affiliate links)\nSENA 50C: https://www.sena.com/en-us/product/50c/\nKlim Induction Pro Jacket and Pants: https://www.klim.com/?rstr=52203\nKlim Krios Pro Helmet : https://www.klim.com/?rstr=52203\nAmazon Puffy Jacket: https://amzn.to/4fLRYpw\nTusk Pilot Pannier Bags: https://amzn.to/4dU5nKG\nTusk Tank Bag: https://amzn.to/46RBXKR\nMotoz Rallz tires : https://motoz.com.au/product/tractionator-rallz-2/\nRade Rally Tower: https://www.radegarage.com/product/husqvarna-701-f5/\nInsta 360 Camera: https://amzn.to/4cCtTPk\nRam Phone Mount: https://amzn.to/3WToUE2\n100% Goggles: https://amzn.to/3SUBhOU\nCanister For Fuel Bottle: https://amzn.to/3YP1KkP (you can get these locally at farm supply stores for less)\n\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\n\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\n\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "duration" => 1673, "filename" => "/downloads/Vanlife/2024-08-22 Adventure Motorcycles: But Why?/Adventure Motorcycles: But Why? [S1p5ktR0KC0].mkv", "id" => "S1p5ktR0KC0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=S1p5ktR0KC0", "playlist_index" => 70, "timestamp" => 1724338852, "title" => "Adventure Motorcycles: But Why?", "upload_date" => "20240822"} 10:59:46.082 [debug] QUERY OK source="sources" db=0.1ms idle=527.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:59:46.082 [debug] QUERY OK source="sources" db=0.1ms idle=527.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:46.082 [debug] QUERY OK source="media_items" db=0.4ms idle=527.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-22 15:00:52Z], 10] 10:59:46.084 [debug] QUERY OK source="media_items" db=0.7ms idle=528.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Gear I used (I'm only listing the good stuff. Some of these are affiliate links)\nSENA 50C: https://www.sena.com/en-us/product/50c/\nKlim Induction Pro Jacket and Pants: https://www.klim.com/?rstr=52203\nKlim Krios Pro Helmet : https://www.klim.com/?rstr=52203\nAmazon Puffy Jacket: https://amzn.to/4fLRYpw\nTusk Pilot Pannier Bags: https://amzn.to/4dU5nKG\nTusk Tank Bag: https://amzn.to/46RBXKR\nMotoz Rallz tires : https://motoz.com.au/product/tractionator-rallz-2/\nRade Rally Tower: https://www.radegarage.com/product/husqvarna-701-f5/\nInsta 360 Camera: https://amzn.to/4cCtTPk\nRam Phone Mount: https://amzn.to/3WToUE2\n100% Goggles: https://amzn.to/3SUBhOU\nCanister For Fuel Bottle: https://amzn.to/3YP1KkP (you can get these locally at farm supply stores for less)\n\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\n\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\n\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "Adventure Motorcycles: But Why?", "f6c2593f-e80c-4aaa-88d2-27322f3466b8", 10, [], 1673, false, "S1p5ktR0KC0", "https://www.youtube.com/watch?v=S1p5ktR0KC0", 70, "/downloads/Vanlife/2024-08-22 Adventure Motorcycles: But Why?/Adventure Motorcycles: But Why? [S1p5ktR0KC0].mkv", false, false, false, 1, ~U[2024-08-22 15:00:52Z], ~U[2026-07-11 14:59:46Z], ~U[2026-07-11 14:59:46Z], "Gear I used (I'm only listing the good stuff. Some of these are affiliate links)\nSENA 50C: https://www.sena.com/en-us/product/50c/\nKlim Induction Pro Jacket and Pants: https://www.klim.com/?rstr=52203\nKlim Krios Pro Helmet : https://www.klim.com/?rstr=52203\nAmazon Puffy Jacket: https://amzn.to/4fLRYpw\nTusk Pilot Pannier Bags: https://amzn.to/4dU5nKG\nTusk Tank Bag: https://amzn.to/46RBXKR\nMotoz Rallz tires : https://motoz.com.au/product/tractionator-rallz-2/\nRade Rally Tower: https://www.radegarage.com/product/husqvarna-701-f5/\nInsta 360 Camera: https://amzn.to/4cCtTPk\nRam Phone Mount: https://amzn.to/3WToUE2\n100% Goggles: https://amzn.to/3SUBhOU\nCanister For Fuel Bottle: https://amzn.to/3YP1KkP (you can get these locally at farm supply stores for less)\n\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\n\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\n\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "Adventure Motorcycles: But Why?", 10, 1673, false, "S1p5ktR0KC0", "https://www.youtube.com/watch?v=S1p5ktR0KC0", "/downloads/Vanlife/2024-08-22 Adventure Motorcycles: But Why?/Adventure Motorcycles: But Why? [S1p5ktR0KC0].mkv", false, ~U[2024-08-22 15:00:52Z]] 10:59:46.084 [debug] QUERY OK source="sources" db=0.1ms idle=280.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:46.084 [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] 10:59:46.085 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10215] 10:59:46.085 [debug] Current batch of media processed. Will check again in 1000ms 10:59:47.085 [debug] Current batch of media processed. Will check again in 1000ms 10:59:48.086 [debug] Current batch of media processed. Will check again in 1000ms 10:59:49.087 [debug] Current batch of media processed. Will check again in 1000ms 10:59:50.088 [debug] Current batch of media processed. Will check again in 1000ms 10:59:51.089 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Go to https://surfshark.com/saillife or use code SAILLIFE at checkout to get 4 extra months of Surfshark VPN!\n\nI've been waiting for weeks to get our Shapeoko 5 Pro 4x4 CNC assembled in the new workshop. It's finally time! \n\nAva's Kindership: \nInstagram: https://www.instagram.com/thekindership/\nTikTok: https://www.tiktok.com/@thekindership\n\n** Links and contact information **\nMy email address is ohglorioussanding@gmail.com\nFor sponsor deals, please use this email: saillife@thestation.io\n\nAmazon wishlist: https://www.amazon.com/hz/wishlist/ls/2NJUK30IBFWO1\n\nSail Life website:\nhttps://www.saillifechannel.com/\n\nSail Life on Patreon:\nhttp://bit.ly/SailLifeOnPatreon\n\nSail Life on Instagram:\nhttps://www.instagram.com/saillife_\n\nSail Life on Facebook:\nhttp://bit.ly/SailLifeOnFacebook\n\nSail Life on Twitter:\nhttp://bit.ly/SailLifeOnTwitter\n\nTotalBoat: \nhttps://www.totalboat.com/saillife\n\nAthena on No Foreign Land:\nhttps://www.noforeignland.com/boat/saillife", "duration" => 1414, "filename" => "/downloads/Vanlife/2025-11-02 ⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653/⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653 [FdYSnitvVp0].mkv", "id" => "FdYSnitvVp0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FdYSnitvVp0", "playlist_index" => 71, "timestamp" => 1762092022, "title" => "⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653", "upload_date" => "20251102"} 10:59:51.090 [debug] QUERY OK source="sources" db=0.2ms idle=1535.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:59:51.090 [debug] QUERY OK source="sources" db=0.1ms idle=1536.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:51.091 [debug] QUERY OK source="media_items" db=0.4ms idle=1536.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-02 14:00:22Z], 10] 10:59:51.092 [debug] QUERY OK source="media_items" db=0.6ms idle=1283.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Go to https://surfshark.com/saillife or use code SAILLIFE at checkout to get 4 extra months of Surfshark VPN!\n\nI've been waiting for weeks to get our Shapeoko 5 Pro 4x4 CNC assembled in the new workshop. It's finally time! \n\nAva's Kindership: \nInstagram: https://www.instagram.com/thekindership/\nTikTok: https://www.tiktok.com/@thekindership\n\n** Links and contact information **\nMy email address is ohglorioussanding@gmail.com\nFor sponsor deals, please use this email: saillife@thestation.io\n\nAmazon wishlist: https://www.amazon.com/hz/wishlist/ls/2NJUK30IBFWO1\n\nSail Life website:\nhttps://www.saillifechannel.com/\n\nSail Life on Patreon:\nhttp://bit.ly/SailLifeOnPatreon\n\nSail Life on Instagram:\nhttps://www.instagram.com/saillife_\n\nSail Life on Facebook:\nhttp://bit.ly/SailLifeOnFacebook\n\nSail Life on Twitter:\nhttp://bit.ly/SailLifeOnTwitter\n\nTotalBoat: \nhttps://www.totalboat.com/saillife\n\nAthena on No Foreign Land:\nhttps://www.noforeignland.com/boat/saillife", "⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653", "6a7df69f-57c3-426f-b771-8562e5cfcffc", 10, [], 1414, false, "FdYSnitvVp0", "https://www.youtube.com/watch?v=FdYSnitvVp0", 71, "/downloads/Vanlife/2025-11-02 ⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653/⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653 [FdYSnitvVp0].mkv", false, false, false, 2, ~U[2025-11-02 14:00:22Z], ~U[2026-07-11 14:59:51Z], ~U[2026-07-11 14:59:51Z], "Go to https://surfshark.com/saillife or use code SAILLIFE at checkout to get 4 extra months of Surfshark VPN!\n\nI've been waiting for weeks to get our Shapeoko 5 Pro 4x4 CNC assembled in the new workshop. It's finally time! \n\nAva's Kindership: \nInstagram: https://www.instagram.com/thekindership/\nTikTok: https://www.tiktok.com/@thekindership\n\n** Links and contact information **\nMy email address is ohglorioussanding@gmail.com\nFor sponsor deals, please use this email: saillife@thestation.io\n\nAmazon wishlist: https://www.amazon.com/hz/wishlist/ls/2NJUK30IBFWO1\n\nSail Life website:\nhttps://www.saillifechannel.com/\n\nSail Life on Patreon:\nhttp://bit.ly/SailLifeOnPatreon\n\nSail Life on Instagram:\nhttps://www.instagram.com/saillife_\n\nSail Life on Facebook:\nhttp://bit.ly/SailLifeOnFacebook\n\nSail Life on Twitter:\nhttp://bit.ly/SailLifeOnTwitter\n\nTotalBoat: \nhttps://www.totalboat.com/saillife\n\nAthena on No Foreign Land:\nhttps://www.noforeignland.com/boat/saillife", "⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653", 10, 1414, false, "FdYSnitvVp0", "https://www.youtube.com/watch?v=FdYSnitvVp0", "/downloads/Vanlife/2025-11-02 ⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653/⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653 [FdYSnitvVp0].mkv", false, ~U[2025-11-02 14:00:22Z]] 10:59:51.092 [debug] QUERY OK source="sources" db=0.1ms idle=283.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:51.093 [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] 10:59:51.093 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10217] 10:59:51.093 [debug] Current batch of media processed. Will check again in 1000ms 10:59:52.094 [debug] Current batch of media processed. Will check again in 1000ms 10:59:53.095 [debug] Current batch of media processed. Will check again in 1000ms 10:59:54.096 [debug] Current batch of media processed. Will check again in 1000ms 10:59:55.097 [debug] Current batch of media processed. Will check again in 1000ms 10:59:56.098 [debug] Current batch of media processed. Will check again in 1000ms 10:59:57.099 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "These are the 6 Toilet Options we use MOST in our Custom Van Conversions. Read more here: \nhttps://saraandalexjames.com/vanlife-blog/the-6-best-toilet-options\n\nGet details on our Custom Builds here: https://customcraftedvans.com\n\nWatch more videos like this 👇\nThe PERFECT Van with Elevator Bed: https://www.youtube.com/watch?v=u81e42UksmE&t=5s\n\n\nSubscribe: https://www.youtube.com/@SaraandAlexJames?view_as=subscriber?sub_confirmation=1\n\nHi, we are Sara and Alex James and we're the founders of Custom Crafted Vans. We've always been passionate about travel and adventure, and we dreamed of creating a business that could help others experience the same joy - especially if you're embarking on a DIY van build like we did!\n\nOur backgrounds in construction and design have proven to be incredibly helpful in crafting our custom camper vans. We're all about the little details and are dedicated to crafting top-notch, practical, and beautiful spaces for our clients to relish during their journeys.\n\n➳ GET OUR FLOOR PLANS HERE: https://saraandalexjames.com/van-build-layout-guide\n\n➳ WINDOW COVERS: https://shop.thewanderful.co/?ref=alexjames\n\nYou can check out our custom van build work here: https://customcraftedvans.com\n\nSubscribe: https://www.youtube.com/@SaraandAlexJames?view_as=subscriber?sub_confirmation=1\n\n#vantour #vanlife #vantoilets\n\nLet's Connect...\nWebsite: https://saraandalexjames.com", "duration" => 428, "filename" => "/downloads/Vanlife/2024-01-15 We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽/We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽 [HU_UisEzLK0].mkv", "id" => "HU_UisEzLK0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HU_UisEzLK0", "playlist_index" => 72, "timestamp" => 1705327222, "title" => "We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽", "upload_date" => "20240115"} 10:59:57.100 [debug] QUERY OK source="sources" db=0.2ms idle=545.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 10:59:57.100 [debug] QUERY OK source="sources" db=0.1ms idle=545.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:57.101 [debug] QUERY OK source="media_items" db=0.4ms idle=546.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-15 14:00:22Z], 10] 10:59:57.102 [debug] QUERY OK source="media_items" db=1.4ms idle=546.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["These are the 6 Toilet Options we use MOST in our Custom Van Conversions. Read more here: \nhttps://saraandalexjames.com/vanlife-blog/the-6-best-toilet-options\n\nGet details on our Custom Builds here: https://customcraftedvans.com\n\nWatch more videos like this 👇\nThe PERFECT Van with Elevator Bed: https://www.youtube.com/watch?v=u81e42UksmE&t=5s\n\n\nSubscribe: https://www.youtube.com/@SaraandAlexJames?view_as=subscriber?sub_confirmation=1\n\nHi, we are Sara and Alex James and we're the founders of Custom Crafted Vans. We've always been passionate about travel and adventure, and we dreamed of creating a business that could help others experience the same joy - especially if you're embarking on a DIY van build like we did!\n\nOur backgrounds in construction and design have proven to be incredibly helpful in crafting our custom camper vans. We're all about the little details and are dedicated to crafting top-notch, practical, and beautiful spaces for our clients to relish during their journeys.\n\n➳ GET OUR FLOOR PLANS HERE: https://saraandalexjames.com/van-build-layout-guide\n\n➳ WINDOW COVERS: https://shop.thewanderful.co/?ref=alexjames\n\nYou can check out our custom van build work here: https://customcraftedvans.com\n\nSubscribe: https://www.youtube.com/@SaraandAlexJames?view_as=subscriber?sub_confirmation=1\n\n#vantour #vanlife #vantoilets\n\nLet's Connect...\nWebsite: https://saraandalexjames.com", "We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽", "78f9cb06-1760-4311-95c1-bd9fe57fbb97", 10, [], 428, false, "HU_UisEzLK0", "https://www.youtube.com/watch?v=HU_UisEzLK0", 72, "/downloads/Vanlife/2024-01-15 We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽/We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽 [HU_UisEzLK0].mkv", false, false, false, 1, ~U[2024-01-15 14:00:22Z], ~U[2026-07-11 14:59:57Z], ~U[2026-07-11 14:59:57Z], "These are the 6 Toilet Options we use MOST in our Custom Van Conversions. Read more here: \nhttps://saraandalexjames.com/vanlife-blog/the-6-best-toilet-options\n\nGet details on our Custom Builds here: https://customcraftedvans.com\n\nWatch more videos like this 👇\nThe PERFECT Van with Elevator Bed: https://www.youtube.com/watch?v=u81e42UksmE&t=5s\n\n\nSubscribe: https://www.youtube.com/@SaraandAlexJames?view_as=subscriber?sub_confirmation=1\n\nHi, we are Sara and Alex James and we're the founders of Custom Crafted Vans. We've always been passionate about travel and adventure, and we dreamed of creating a business that could help others experience the same joy - especially if you're embarking on a DIY van build like we did!\n\nOur backgrounds in construction and design have proven to be incredibly helpful in crafting our custom camper vans. We're all about the little details and are dedicated to crafting top-notch, practical, and beautiful spaces for our clients to relish during their journeys.\n\n➳ GET OUR FLOOR PLANS HERE: https://saraandalexjames.com/van-build-layout-guide\n\n➳ WINDOW COVERS: https://shop.thewanderful.co/?ref=alexjames\n\nYou can check out our custom van build work here: https://customcraftedvans.com\n\nSubscribe: https://www.youtube.com/@SaraandAlexJames?view_as=subscriber?sub_confirmation=1\n\n#vantour #vanlife #vantoilets\n\nLet's Connect...\nWebsite: https://saraandalexjames.com", "We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽", 10, 428, false, "HU_UisEzLK0", "https://www.youtube.com/watch?v=HU_UisEzLK0", "/downloads/Vanlife/2024-01-15 We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽/We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽 [HU_UisEzLK0].mkv", false, ~U[2024-01-15 14:00:22Z]] 10:59:57.103 [debug] QUERY OK source="sources" db=0.1ms idle=285.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 10:59:57.103 [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:59:57.104 [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 [10219] 10:59:57.104 [debug] Current batch of media processed. Will check again in 1000ms 10:59:58.104 [debug] Current batch of media processed. Will check again in 1000ms 10:59:59.105 [debug] Current batch of media processed. Will check again in 1000ms 11:00:00.106 [debug] Current batch of media processed. Will check again in 1000ms 11:00:00.204 [info] {"source":"oban","duration":140,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:00:00.478 [info] {"source":"oban","duration":594,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:00:01.107 [debug] Current batch of media processed. Will check again in 1000ms 11:00:02.108 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Odyssey and Odyssey Lite are now available for purchase. \n\nI am partnered with an RVIA and Mercedes certified company and together we will be building and perfecting these layouts. These builds are JD powerlisted and financing is available! if you are interested, send a message to my email: RavizzaLuxuryVans@gmail.com\n\n📸 Follow My Van Builds on Instagram: https://www.instagram.com/lucasravizza?igsh=ZGUzMzM3NWJiOQ==\n\nORIGINAL ODYSSEY VAN TOUR: https://youtu.be/D221sh1zoRs\n\nThis is Odyssey Lite. A Mercedes sprinter 144” wheelbase. The smaller version of the original Odyssey, which was built in the 170” wheelbase. This van still packs in all of the amenities. Air conditioning, bed lift, full shower, hydronic heating, Home theater, gear tray, gear garage and much more!\n\nORIGINAL ODYSSEY VAN TOUR: https://youtu.be/D221sh1zoRs\n\nEMAIL: ravizzaluxuryvans@gmail.com\n\n📸 Follow My Van Builds on Instagram: https://www.instagram.com/lucasravizza?igsh=ZGUzMzM3NWJiOQ==\n\nWEBSITE: https://www.ravizzaluxuryvans.com\n\nSOUND SYSTEM: https://geni.us/B6WO\n\nVolthium Battery’s: https://volthium.com/en/produit/12v-400ah-battery/?srsltid=AfmBOooeXR2lS3ek8d6NW_XwCytG02A9LxkOstgpIziZbU9Cly9v3Wyo\n\nRixens Hydronic Heating: https://rixens.com\n\nBuilding a van? Buy the right products: https://www.campervan-hq.com/?ref=LUCASRAVIZZA\n\nDisclaimer: This description contains affiliate links. If you purchase through these links, I may earn a commission at no extra cost to you! \n\n#vanlife #vanbuild #campervan #luxuryhomes #luxurydesign #diyvanconversion #rvlife", "duration" => 800, "filename" => "/downloads/Vanlife/2024-12-08 LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐/LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐 [L_maps8iHQE].mp4", "id" => "L_maps8iHQE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=L_maps8iHQE", "playlist_index" => 73, "timestamp" => 1733618091, "title" => "LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐", "upload_date" => "20241208"} 11:00:02.109 [debug] QUERY OK source="sources" db=0.2ms idle=1554.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:00:02.109 [debug] QUERY OK source="sources" db=0.1ms idle=1288.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:02.110 [debug] QUERY OK source="media_items" db=0.5ms idle=555.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-08 00:34:51Z], 10] 11:00:02.112 [debug] QUERY OK source="media_items" db=1.3ms idle=556.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Odyssey and Odyssey Lite are now available for purchase. \n\nI am partnered with an RVIA and Mercedes certified company and together we will be building and perfecting these layouts. These builds are JD powerlisted and financing is available! if you are interested, send a message to my email: RavizzaLuxuryVans@gmail.com\n\n📸 Follow My Van Builds on Instagram: https://www.instagram.com/lucasravizza?igsh=ZGUzMzM3NWJiOQ==\n\nORIGINAL ODYSSEY VAN TOUR: https://youtu.be/D221sh1zoRs\n\nThis is Odyssey Lite. A Mercedes sprinter 144” wheelbase. The smaller version of the original Odyssey, which was built in the 170” wheelbase. This van still packs in all of the amenities. Air conditioning, bed lift, full shower, hydronic heating, Home theater, gear tray, gear garage and much more!\n\nORIGINAL ODYSSEY VAN TOUR: https://youtu.be/D221sh1zoRs\n\nEMAIL: ravizzaluxuryvans@gmail.com\n\n📸 Follow My Van Builds on Instagram: https://www.instagram.com/lucasravizza?igsh=ZGUzMzM3NWJiOQ==\n\nWEBSITE: https://www.ravizzaluxuryvans.com\n\nSOUND SYSTEM: https://geni.us/B6WO\n\nVolthium Battery’s: https://volthium.com/en/produit/12v-400ah-battery/?srsltid=AfmBOooeXR2lS3ek8d6NW_XwCytG02A9LxkOstgpIziZbU9Cly9v3Wyo\n\nRixens Hydronic Heating: https://rixens.com\n\nBuilding a van? Buy the right products: https://www.campervan-hq.com/?ref=LUCASRAVIZZA\n\nDisclaimer: This description contains affiliate links. If you purchase through these links, I may earn a commission at no extra cost to you! \n\n#vanlife #vanbuild #campervan #luxuryhomes #luxurydesign #diyvanconversion #rvlife", "LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐", "efa448ff-3ff9-4386-85d5-fa2480befb91", 10, [], 800, false, "L_maps8iHQE", "https://www.youtube.com/watch?v=L_maps8iHQE", 73, "/downloads/Vanlife/2024-12-08 LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐/LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐 [L_maps8iHQE].mp4", false, false, false, 1, ~U[2024-12-08 00:34:51Z], ~U[2026-07-11 15:00:02Z], ~U[2026-07-11 15:00:02Z], "Odyssey and Odyssey Lite are now available for purchase. \n\nI am partnered with an RVIA and Mercedes certified company and together we will be building and perfecting these layouts. These builds are JD powerlisted and financing is available! if you are interested, send a message to my email: RavizzaLuxuryVans@gmail.com\n\n📸 Follow My Van Builds on Instagram: https://www.instagram.com/lucasravizza?igsh=ZGUzMzM3NWJiOQ==\n\nORIGINAL ODYSSEY VAN TOUR: https://youtu.be/D221sh1zoRs\n\nThis is Odyssey Lite. A Mercedes sprinter 144” wheelbase. The smaller version of the original Odyssey, which was built in the 170” wheelbase. This van still packs in all of the amenities. Air conditioning, bed lift, full shower, hydronic heating, Home theater, gear tray, gear garage and much more!\n\nORIGINAL ODYSSEY VAN TOUR: https://youtu.be/D221sh1zoRs\n\nEMAIL: ravizzaluxuryvans@gmail.com\n\n📸 Follow My Van Builds on Instagram: https://www.instagram.com/lucasravizza?igsh=ZGUzMzM3NWJiOQ==\n\nWEBSITE: https://www.ravizzaluxuryvans.com\n\nSOUND SYSTEM: https://geni.us/B6WO\n\nVolthium Battery’s: https://volthium.com/en/produit/12v-400ah-battery/?srsltid=AfmBOooeXR2lS3ek8d6NW_XwCytG02A9LxkOstgpIziZbU9Cly9v3Wyo\n\nRixens Hydronic Heating: https://rixens.com\n\nBuilding a van? Buy the right products: https://www.campervan-hq.com/?ref=LUCASRAVIZZA\n\nDisclaimer: This description contains affiliate links. If you purchase through these links, I may earn a commission at no extra cost to you! \n\n#vanlife #vanbuild #campervan #luxuryhomes #luxurydesign #diyvanconversion #rvlife", "LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐", 10, 800, false, "L_maps8iHQE", "https://www.youtube.com/watch?v=L_maps8iHQE", "/downloads/Vanlife/2024-12-08 LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐/LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐 [L_maps8iHQE].mp4", false, ~U[2024-12-08 00:34:51Z]] 11:00:02.112 [debug] QUERY OK source="sources" db=0.2ms idle=290.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:02.113 [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] 11:00:02.113 [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 [10221] 11:00:02.113 [debug] Current batch of media processed. Will check again in 1000ms 11:00:03.114 [debug] Current batch of media processed. Will check again in 1000ms 11:00:04.115 [debug] Current batch of media processed. Will check again in 1000ms 11:00:05.116 [debug] Current batch of media processed. Will check again in 1000ms 11:00:06.117 [debug] Current batch of media processed. Will check again in 1000ms 11:00:07.118 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "This is a compilation of everything I know about building cabinets.\n✅️ PROJECT PLANS:\nBase Cabinets: https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinets - https://mwawoodworks.com/product/upper-cabinet-plans/ \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nTall Pantry Cabinet- https://mwawoodworks.com/product/tall-pantry-storage-cabinet/\nKitchen Island - https://mwawoodworks.com/product/kitchen-island/\nCabinet Plan Bundle - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nTV/Media Console/Sideboard- https://mwawoodworks.com/product/media-console-sideboard-plans/\nTall Storage Cabinet - https://mwawoodworks.com/product/tall-storage-cabinet/\n\n✅️ TOOLS AND SUPPLIES IN THESE VIDEOS:\nCentipede Work Holder - https://tsoproducts.com/accessories/bora-centipede-4x8-foot-unit-with-4-x-cups-4-clamps-carry-bag/?ref=MWAWW\nTrue Position Tools Cabinet Hardware Jig - https://amzn.to/3g3pgDr\nAmana Countersink Drill Bit - https://amzn.to/3vhyQgQ\nPlywood Router Bit Set - https://amzn.to/3sj7lxn\nSpectape Two Sided Tape - https://amzn.to/3wleKh4\nKreg Shelf Pin Jig (new model) - https://amzn.to/3kwugpG\nKreg Concealed Hinge Jig - https://amzn.to/3uOsyBV\nEnjoywood Pocket Hole Jig - https://amzn.to/3Zonuki\nPocket Screws - https://amzn.to/3mAGqsC\nCastle TSM-12 pocket cutting machine - https://bit.ly/castle-tsm-12-pocket-cutter\nMag Switch - https://amzn.to/3PqmasA\nBessey One Handed Clamps - https://amzn.to/2VWftbp\nSpeed Square - https://amzn.to/3xHGwEl\nQUICK & THICK WOOD GLUE - https://amzn.to/34AkFl5\nTITEBOND II WOOD GLUE - https://amzn.to/3b5UTHT\nPaste Wax (for screws) - https://amzn.to/3AOd41r\nSelf Centering Drill Bit - https://amzn.to/3yNNpFx\nFestool LR32 System - https://amzn.to/3KxTmPw\nFestool TS55 Track Saw - https://amzn.to/2RDrPPS\nFESTOOL DOMINO 500 - https://amzn.to/2Xu6Pzb\nFESTOOL RANDOM ORBIT SANDER -https://amzn.to/2K10nru\nFreud Flat Grind Table Saw Blade - https://amzn.to/34yjKTE\nFreud Round over Router Bit - https://amzn.to/37yhEVI\nExtra Long Drill Extension - https://amzn.to/3pb4jbG\nQuad Edge Band Trimmer - https://amzn.to/2XzftMT\nSPEED ROLLER PRO - https://amzn.to/3cfDzjI\nFLUSH CUT PLIERS - https://amzn.to/2wxJUb9\nFASTBREAK DUAL EDGE SANDER - https://amzn.to/3eg5GkP\nPRE-FINISHED MAPLE EDGE BANDING - https://amzn.to/2RuHrpq\nMAGNETIC CATCHES - https://amzn.to/3cgqfMm\nRARE EARTH MAGNETS - https://amzn.to/2yVoXYE\nBUTT HINGES -https://amzn.to/2xs16PV\nDOOR PULLS - https://amzn.to/2VoGwrx\nRAISED PANEL BIT - https://amzn.to/2Rxm9aA\n35mm Forstner Bit for door cup hinges - https://amzn.to/30WQO3S\nCenter Punch - https://amzn.to/2PKnfRF\nParallel Clamps - https://amzn.to/30ZNRPZ\nTape Measure - https://amzn.to/43mLfwx\nMallet - https://amzn.to/43o54Ug\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: https://patreon.com/MWAWoodworks \nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\nHow to Build Cabinets \n⏱️ Chapters\n00:00 Intro\n00:44 Build Base Cabinets\n18:46 Build Upper Cabinets\n31:58 Tips & Tricks for Cabinet Making\n47:00 Deep Drawer Base Cabinets\n58:32 Tall Pantry Cabinet with Trays\n01:14:02 Build Kitchen Island\n01:39:08 Build a Console Sideboard\n01:53:38 Tall Shop Storage Cabinet\n02:03:10 Build Frame & Panel Doors\n02:11:10 Hang Cabinets on Cinder Block\n\n#cabinets#carpentry#woodworking", "duration" => 8169, "filename" => "/downloads/Vanlife/2024-03-30 DIY Cabinets - The Complete Guide/DIY Cabinets - The Complete Guide [4nHzlL_d5wg].mkv", "id" => "4nHzlL_d5wg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4nHzlL_d5wg", "playlist_index" => 74, "timestamp" => 1711813459, "title" => "DIY Cabinets - The Complete Guide", "upload_date" => "20240330"} 11:00:07.119 [debug] QUERY OK source="sources" db=0.1ms idle=1564.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:00:07.119 [debug] QUERY OK source="sources" db=0.1ms idle=1564.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:07.120 [debug] QUERY OK source="media_items" db=0.3ms idle=1564.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-30 15:44:19Z], 10] 11:00:07.124 [debug] QUERY OK source="media_items" db=3.7ms idle=1293.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This is a compilation of everything I know about building cabinets.\n✅️ PROJECT PLANS:\nBase Cabinets: https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinets - https://mwawoodworks.com/product/upper-cabinet-plans/ \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nTall Pantry Cabinet- https://mwawoodworks.com/product/tall-pantry-storage-cabinet/\nKitchen Island - https://mwawoodworks.com/product/kitchen-island/\nCabinet Plan Bundle - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nTV/Media Console/Sideboard- https://mwawoodworks.com/product/media-console-sideboard-plans/\nTall Storage Cabinet - https://mwawoodworks.com/product/tall-storage-cabinet/\n\n✅️ TOOLS AND SUPPLIES IN THESE VIDEOS:\nCentipede Work Holder - https://tsoproducts.com/accessories/bora-centipede-4x8-foot-unit-with-4-x-cups-4-clamps-carry-bag/?ref=MWAWW\nTrue Position Tools Cabinet Hardware Jig - https://amzn.to/3g3pgDr\nAmana Countersink Drill Bit - https://amzn.to/3vhyQgQ\nPlywood Router Bit Set - https://amzn.to/3sj7lxn\nSpectape Two Sided Tape - https://amzn.to/3wleKh4\nKreg Shelf Pin Jig (new model) - https://amzn.to/3kwugpG\nKreg Concealed Hinge Jig - https://amzn.to/3uOsyBV\nEnjoywood Pocket Hole Jig - https://amzn.to/3Zonuki\nPocket Screws - https://amzn.to/3mAGqsC\nCastle TSM-12 pocket cutting machine - https://bit.ly/castle-tsm-12-pocket-cutter\nMag Switch - https://amzn.to/3PqmasA\nBessey One Handed Clamps - https://amzn.to/2VWftbp\nSpeed Square - https://amzn.to/3xHGwEl\nQUICK & THICK WOOD GLUE - https://amzn.to/34AkFl5\nTITEBOND II WOOD GLUE - https://amzn.to/3b5UTHT\nPaste Wax (for screws) - https://amzn.to/3AOd41r\nSelf Centering Drill Bit - https://amzn.to/3yNNpFx\nFestool LR32 System - https://amzn.to/3KxTmPw\nFestool TS55 Track Saw - https://amzn.to/2RDrPPS\nFESTOOL DOMINO 500 - https://amzn.to/2Xu6Pzb\nFESTOOL RANDOM ORBIT SANDER -https://amzn.to/2K10nru\nFreud Flat Grind Table Saw Blade - https://amzn.to/34yjKTE\nFreud Round over Router Bit - https://amzn.to/37yhEVI\nExtra Long Drill Extension - https://amzn.to/3pb4jbG\nQuad Edge Band Trimmer - https://amzn.to/2XzftMT\nSPEED ROLLER PRO - https://amzn.to/3cfDzjI\nFLUSH CUT PLIERS - https://amzn.to/2wxJUb9\nFASTBREAK DUAL EDGE SANDER - https://amzn.to/3eg5GkP\nPRE-FINISHED MAPLE EDGE BANDING - https://amzn.to/2RuHrpq\nMAGNETIC CATCHES - https://amzn.to/3cgqfMm\nRARE EARTH MAGNETS - https://amzn.to/2yVoXYE\nBUTT HINGES -https://amzn.to/2xs16PV\nDOOR PULLS - https://amzn.to/2VoGwrx\nRAISED PANEL BIT - https://amzn.to/2Rxm9aA\n35mm Forstner Bit for door cup hinges - https://amzn.to/30WQO3S\nCenter Punch - https://amzn.to/2PKnfRF\nParallel Clamps - https://amzn.to/30ZNRPZ\nTape Measure - https://amzn.to/43mLfwx\nMallet - https://amzn.to/43o54Ug\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: https://patreon.com/MWAWoodworks \nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\nHow to Build Cabinets \n⏱️ Chapters\n00:00 Intro\n00:44 Build Base Cabinets\n18:46 Build Upper Cabinets\n31:58 Tips & Tricks for Cabinet Making\n47:00 Deep Drawer Base Cabinets\n58:32 Tall Pantry Cabinet with Trays\n01:14:02 Build Kitchen Island\n01:39:08 Build a Console Sideboard\n01:53:38 Tall Shop Storage Cabinet\n02:03:10 Build Frame & Panel Doors\n02:11:10 Hang Cabinets on Cinder Block\n\n#cabinets#carpentry#woodworking", "DIY Cabinets - The Complete Guide", "f594bc40-4725-4524-ac27-22a15557dae5", 10, [], 8169, false, "4nHzlL_d5wg", "https://www.youtube.com/watch?v=4nHzlL_d5wg", 74, "/downloads/Vanlife/2024-03-30 DIY Cabinets - The Complete Guide/DIY Cabinets - The Complete Guide [4nHzlL_d5wg].mkv", false, false, false, 1, ~U[2024-03-30 15:44:19Z], ~U[2026-07-11 15:00:07Z], ~U[2026-07-11 15:00:07Z], "This is a compilation of everything I know about building cabinets.\n✅️ PROJECT PLANS:\nBase Cabinets: https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinets - https://mwawoodworks.com/product/upper-cabinet-plans/ \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nTall Pantry Cabinet- https://mwawoodworks.com/product/tall-pantry-storage-cabinet/\nKitchen Island - https://mwawoodworks.com/product/kitchen-island/\nCabinet Plan Bundle - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nTV/Media Console/Sideboard- https://mwawoodworks.com/product/media-console-sideboard-plans/\nTall Storage Cabinet - https://mwawoodworks.com/product/tall-storage-cabinet/\n\n✅️ TOOLS AND SUPPLIES IN THESE VIDEOS:\nCentipede Work Holder - https://tsoproducts.com/accessories/bora-centipede-4x8-foot-unit-with-4-x-cups-4-clamps-carry-bag/?ref=MWAWW\nTrue Position Tools Cabinet Hardware Jig - https://amzn.to/3g3pgDr\nAmana Countersink Drill Bit - https://amzn.to/3vhyQgQ\nPlywood Router Bit Set - https://amzn.to/3sj7lxn\nSpectape Two Sided Tape - https://amzn.to/3wleKh4\nKreg Shelf Pin Jig (new model) - https://amzn.to/3kwugpG\nKreg Concealed Hinge Jig - https://amzn.to/3uOsyBV\nEnjoywood Pocket Hole Jig - https://amzn.to/3Zonuki\nPocket Screws - https://amzn.to/3mAGqsC\nCastle TSM-12 pocket cutting machine - https://bit.ly/castle-tsm-12-pocket-cutter\nMag Switch - https://amzn.to/3PqmasA\nBessey One Handed Clamps - https://amzn.to/2VWftbp\nSpeed Square - https://amzn.to/3xHGwEl\nQUICK & THICK WOOD GLUE - https://amzn.to/34AkFl5\nTITEBOND II WOOD GLUE - https://amzn.to/3b5UTHT\nPaste Wax (for screws) - https://amzn.to/3AOd41r\nSelf Centering Drill Bit - https://amzn.to/3yNNpFx\nFestool LR32 System - https://amzn.to/3KxTmPw\nFestool TS55 Track Saw - https://amzn.to/2RDrPPS\nFESTOOL DOMINO 500 - https://amzn.to/2Xu6Pzb\nFESTOOL RANDOM ORBIT SANDER -https://amzn.to/2K10nru\nFreud Flat Grind Table Saw Blade - https://amzn.to/34yjKTE\nFreud Round over Router Bit - https://amzn.to/37yhEVI\nExtra Long Drill Extension - https://amzn.to/3pb4jbG\nQuad Edge Band Trimmer - https://amzn.to/2XzftMT\nSPEED ROLLER PRO - https://amzn.to/3cfDzjI\nFLUSH CUT PLIERS - https://amzn.to/2wxJUb9\nFASTBREAK DUAL EDGE SANDER - https://amzn.to/3eg5GkP\nPRE-FINISHED MAPLE EDGE BANDING - https://amzn.to/2RuHrpq\nMAGNETIC CATCHES - https://amzn.to/3cgqfMm\nRARE EARTH MAGNETS - https://amzn.to/2yVoXYE\nBUTT HINGES -https://amzn.to/2xs16PV\nDOOR PULLS - https://amzn.to/2VoGwrx\nRAISED PANEL BIT - https://amzn.to/2Rxm9aA\n35mm Forstner Bit for door cup hinges - https://amzn.to/30WQO3S\nCenter Punch - https://amzn.to/2PKnfRF\nParallel Clamps - https://amzn.to/30ZNRPZ\nTape Measure - https://amzn.to/43mLfwx\nMallet - https://amzn.to/43o54Ug\n*Disclaimer – As an Amazon Associate I earn from qua (truncated) 11:00:07.124 [debug] QUERY OK source="sources" db=0.1ms idle=296.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:07.125 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:00:07.125 [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 [10223] 11:00:07.125 [debug] Current batch of media processed. Will check again in 1000ms 11:00:08.126 [debug] Current batch of media processed. Will check again in 1000ms 11:00:09.127 [debug] Current batch of media processed. Will check again in 1000ms 11:00:10.128 [debug] Current batch of media processed. Will check again in 1000ms 11:00:11.129 [debug] Current batch of media processed. Will check again in 1000ms 11:00:12.130 [debug] Current batch of media processed. Will check again in 1000ms 11:00:13.131 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Hydronic heating Van floors is an amazing thing to have in your van if you can build it in. This is going to be a multi part series about the installation of a hydronically heated floor as part of my North American Vanlife Industry Tour series. Just Roaming Design is helping me with the install, and we will start this series with the cutting of the templates for the floor, as well as my reasoning behind getting a hydronic heating floor and getting introduced to the shop.\n\nJust Roaming Design: https://www.justroamingdesign.com/ Facebook: https://www.facebook.com/JustRoamingConversions Instagram: https://www.instagram.com/justroamingdesign \n\nRixens: https://rixens.com/\n\nTeddy’s Knife Company: https://peachsmithdesigns.wixsite.com/peachsmithdesigns\n\nMichaels CNC Company: \nhttps://www.cascade-cnc.com/\nhttps://www.michaeldaviderspamer.com/\n\nSee my Vanlife Tour Map Here: http://jayoe.com/vanlife-industry-tour/\nCheck out my stats and Vanlife plans here: http://jayoe.com/vanlife-industry/\n\n00:00 – Introduction\n01:11 – Templating\n04:08 – Teddy’s Knife Business\n04:51 – Custom Cabinets\n07:55 – Why do I need a hydronic floor?\n09:07 – Hydronic System\n10:34 – Why don’t you just Migrate?\n11:55 – Hidden Shower Pan\n14:31 – Final floor template adjustments\n15:11 – Cutting the final templates\n18:41 – Designing the final floor panels\n19:50 – Food Truck Lunch\n\n--------- SUPPORT ME ---------\nPATREON: https://www.patreon.com/JaYoe \nBUY ME A COFFEE: https://ko-fi.com/jayoe\nSHOP ON JAYOE: https://jayoe.com/jayoe-gear-and-merch/\nSEND ME ON WECHAT: http://jayoe.com/wechat/\n\n--------- SUPPORT ME ON YOUTUBE ---------\nhttps://www.youtube.com/JaYoeNation/join\n\nFollow me on the Internets…\nWEBSITE: http://www.jayoe.com \nYOUTUBE: https://www.youtube.com/JaYoeNation \nFACEBOOK: https://www.facebook.com/JaYoeLife/ \nINSTAGRAM: https://www.instagram.com/jayoelife/ \nTWITTER: https://twitter.com/jayoelife \nBilliBIlli: https://space.bilibili.com/100182773\nDouyin: 加油马特\nToutiao: http://toutiao.com/m1681328028969998/\nREDBUBBLE STORE: https://www.redbubble.com/shop/jayoe\nPERSONAL FACEBOOK: https://www.facebook.com/mcgalat \nPODCAST: https://itunes.apple.com/us/podcast/podcast-jayoe!/id1044254053?mt=2\nSTRAVA: https://www.strava.com/athletes/21659886 \nGARMIN: https://connect.garmin.com/modern/profile/JaYoeLife\n\n\n***MY VANLIFE TOUR LINKS***\nInterested in a WIFI Booster or Cellular Extender? Use the links below!\nhttps://www.wilsonamplifiers.com/?jayoe\nhttps://boltontechnical.com/?jayoe\nFind Lizard Skin Online at: https://lizardskin.com/\nBuy Lizard Skin thru my Affiliate links please!\nSound Barrier Deadener: https://amzn.to/3skCAud\nCeramic Thermal Barrier: https://amzn.to/3mdoEyh\nSpray Nozzle: https://amzn.to/3p6yT9u\nAgile Offroad - https://agileoffroad.com/\n\n--------- JAYOE MERCHANDISE ON REDBUBBLE ---------\nhttps://www.redbubble.com/shop/jayoe\n\n------- WHAT DOES JAYOE MEAN? ---------\nhttps://youtu.be/4m7t4Vt1Ir8\n\n------- OTHER SERIES ON THE JAYOE NATION -------\n\nCLIMB UP MOUNT EVEREST\nWatch me on my Everest summit expedition!\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vsnzp_JW0t7Os2EEkyjt_P\n\nMARATHON IN NORTH KOREA\nJoin me as I run a marathon in North Korea, DPRK!\nhttps://youtu.be/DJxsu10VNwA\n\nTHE JAYOE TRAVELOGUES\nThe precursor to my VLOGs, a cycling travel documentary series\nhttps://jayoe.com/the-jayoe-travelogues/ \n\nMATT’S REEF TANK\nA series dedicated to the marine reef tank hobby\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vQAUeuFaIuV-BfbXw-Mx1N\n\n\nJY_VLOG 1143 – Hydronic Floor Template\n\nTravel Vlog\n\n#justroamingdesign #hydronicheating #hydronic #hydronicvanfloor #rixens #rixensheating #vanlife #vanbuild #vanconversion #fordtransit #sprinterconversion #promasterwindows #cncvanlife #justroaming #heatedvanlife #heatingvan #vanconversion #digitalnomad #tinyhouse", "duration" => 1276, "filename" => "/downloads/Vanlife/2022-02-22 Building a Hydronic Heating Floor System in a Van | Part 1: Templating/Building a Hydronic Heating Floor System in a Van | Part 1: Templating [DZoRaiawjr4].mp4", "id" => "DZoRaiawjr4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DZoRaiawjr4", "playlist_index" => 75, "timestamp" => 1645500663, "title" => "Building a Hydronic Heating Floor System in a Van | Part 1: Templating", "upload_date" => "20220222"} 11:00:13.132 [debug] QUERY OK source="sources" db=0.1ms idle=577.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:00:13.132 [debug] QUERY OK source="sources" db=0.0ms idle=577.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:13.133 [debug] QUERY OK source="media_items" db=0.4ms idle=577.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-02-22 03:31:03Z], 10] 11:00:13.138 [debug] QUERY OK source="media_items" db=5.0ms idle=578.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Hydronic heating Van floors is an amazing thing to have in your van if you can build it in. This is going to be a multi part series about the installation of a hydronically heated floor as part of my North American Vanlife Industry Tour series. Just Roaming Design is helping me with the install, and we will start this series with the cutting of the templates for the floor, as well as my reasoning behind getting a hydronic heating floor and getting introduced to the shop.\n\nJust Roaming Design: https://www.justroamingdesign.com/ Facebook: https://www.facebook.com/JustRoamingConversions Instagram: https://www.instagram.com/justroamingdesign \n\nRixens: https://rixens.com/\n\nTeddy’s Knife Company: https://peachsmithdesigns.wixsite.com/peachsmithdesigns\n\nMichaels CNC Company: \nhttps://www.cascade-cnc.com/\nhttps://www.michaeldaviderspamer.com/\n\nSee my Vanlife Tour Map Here: http://jayoe.com/vanlife-industry-tour/\nCheck out my stats and Vanlife plans here: http://jayoe.com/vanlife-industry/\n\n00:00 – Introduction\n01:11 – Templating\n04:08 – Teddy’s Knife Business\n04:51 – Custom Cabinets\n07:55 – Why do I need a hydronic floor?\n09:07 – Hydronic System\n10:34 – Why don’t you just Migrate?\n11:55 – Hidden Shower Pan\n14:31 – Final floor template adjustments\n15:11 – Cutting the final templates\n18:41 – Designing the final floor panels\n19:50 – Food Truck Lunch\n\n--------- SUPPORT ME ---------\nPATREON: https://www.patreon.com/JaYoe \nBUY ME A COFFEE: https://ko-fi.com/jayoe\nSHOP ON JAYOE: https://jayoe.com/jayoe-gear-and-merch/\nSEND ME ON WECHAT: http://jayoe.com/wechat/\n\n--------- SUPPORT ME ON YOUTUBE ---------\nhttps://www.youtube.com/JaYoeNation/join\n\nFollow me on the Internets…\nWEBSITE: http://www.jayoe.com \nYOUTUBE: https://www.youtube.com/JaYoeNation \nFACEBOOK: https://www.facebook.com/JaYoeLife/ \nINSTAGRAM: https://www.instagram.com/jayoelife/ \nTWITTER: https://twitter.com/jayoelife \nBilliBIlli: https://space.bilibili.com/100182773\nDouyin: 加油马特\nToutiao: http://toutiao.com/m1681328028969998/\nREDBUBBLE STORE: https://www.redbubble.com/shop/jayoe\nPERSONAL FACEBOOK: https://www.facebook.com/mcgalat \nPODCAST: https://itunes.apple.com/us/podcast/podcast-jayoe!/id1044254053?mt=2\nSTRAVA: https://www.strava.com/athletes/21659886 \nGARMIN: https://connect.garmin.com/modern/profile/JaYoeLife\n\n\n***MY VANLIFE TOUR LINKS***\nInterested in a WIFI Booster or Cellular Extender? Use the links below!\nhttps://www.wilsonamplifiers.com/?jayoe\nhttps://boltontechnical.com/?jayoe\nFind Lizard Skin Online at: https://lizardskin.com/\nBuy Lizard Skin thru my Affiliate links please!\nSound Barrier Deadener: https://amzn.to/3skCAud\nCeramic Thermal Barrier: https://amzn.to/3mdoEyh\nSpray Nozzle: https://amzn.to/3p6yT9u\nAgile Offroad - https://agileoffroad.com/\n\n--------- JAYOE MERCHANDISE ON REDBUBBLE ---------\nhttps://www.redbubble.com/shop/jayoe\n\n------- WHAT DOES JAYOE MEAN? ---------\nhttps://youtu.be/4m7t4Vt1Ir8\n\n------- OTHER SERIES ON THE JAYOE NATION -------\n\nCLIMB UP MOUNT EVEREST\nWatch me on my Everest summit expedition!\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vsnzp_JW0t7Os2EEkyjt_P\n\nMARATHON IN NORTH KOREA\nJoin me as I run a marathon in North Korea, DPRK!\nhttps://youtu.be/DJxsu10VNwA\n\nTHE JAYOE TRAVELOGUES\nThe precursor to my VLOGs, a cycling travel documentary series\nhttps://jayoe.com/the-jayoe-travelogues/ \n\nMATT’S REEF TANK\nA series dedicated to the marine reef tank hobby\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vQAUeuFaIuV-BfbXw-Mx1N\n\n\nJY_VLOG 1143 – Hydronic Floor Template\n\nTravel Vlog\n\n#justroamingdesign #hydronicheating #hydronic #hydronicvanfloor #rixens #rixensheating #vanlife #vanbuild #vanconversion #fordtransit #sprinterconversion #promasterwindows #cncvanlife #justroaming #heatedvanlife #heatingvan #vanconversion #digitalnomad #tinyhouse", "Building a Hydronic Heating Floor System in a Van | Part 1: Templating", "a576fc4d-c8eb-4bb2-b026-f79534dbe6e2", 10, [], 1276, false, "DZoRaiawjr4", "https://www.youtube.com/watch?v=DZoRaiawjr4", 75, "/downloads/Vanlife/2022-02-22 Building a Hydronic Heating Floor System in a Van | Part 1: Templating/Building a Hydronic Heating Floor System in a Van | Part 1: Templating [DZoRaiawjr4].mp4", false, false, false, 1, ~U[2022-02-22 03:31:03Z], ~U[2026-07-11 15:00:13Z], ~U[2026-07-11 15:00:13Z], "Hydronic heating Van floors is an amazing thing to have in your van if you can build it in. This is going to be a multi part series about the installation of a hydronically heated floor as part of my North American Vanlife Industry Tour series. Just Roaming Design is helping me with the install, and we will start this series with the cutting of the templates for the floor, as well as my reasoning behind getting a hydronic heating floor and getting introduced to the shop.\n\nJust Roaming Design: https://www.justroamingdesign.com/ Facebook: https://www.facebook.com/JustRoamingConversions Instagram: https://www.instagram.com/justroamingdesign \n\nRixens: https://rixens.com/\n\nTeddy’s Knife Company: https://peachsmithdesigns.wixsite.com/peachsmithdesigns\n\nMichaels CNC Company: \nhttps://www.cascade-cnc.com/\nhttps://www.michaeldaviderspamer.com/\n\nSee my Vanlife Tour Map Here: http://jayoe.com/vanlife-industry-tour/\nCheck out my stats and Vanlife plans here: http://jayoe.com/vanlife-industry/\n\n00:00 – Introduction\n01:11 – Templating\n04:08 – Teddy’s Knife Business\n04:51 – Custom Cabinets\n07:55 – Why do I need a hydronic floor?\n09:07 – Hydronic System\n10:34 – Why don’t you just Migrate?\n11:55 – Hidden Shower Pan\n14:31 – Final floor template adjustments\n15:11 – Cutting the final templates\n18:41 – Designing the final floor panels\n19:50 – Food Truck Lunch\n\n--------- SUPPORT ME ---------\nPATREON: https://www.patreon.com/JaYoe \nBUY ME A COFFEE: https://ko-fi.com/jayoe\nSHOP ON JAYOE: https://jayoe.com/jayoe-gear-and-merch/\nSEND ME ON WECHAT: http://jayoe.com/wechat/\n\n--------- SUPPORT ME ON YOUTUBE ---------\nhttps://www.youtube.com/JaYoeNation/join\n\nFollow me on the Internets…\nWEBSITE: http://www.jayoe.com \nYOUTUBE: https://www.youtube.com/JaYoeNation \nFACEBOOK: https://www.facebook.com/JaYoeLife/ \nINSTAGRAM: https://www.instagram.com/jayoelife/ \nTWITTER: https://twitter.com/jayoelife \nBilliBIlli: https://space.bilibili.com/100182773\nDouyin: 加油马特\nToutiao: http://toutiao.com/m1681328028969998/\nREDBUBBLE STORE: https://www.redbubble.com/shop/jayoe\nPERSONAL FACEBOOK: https://www.facebook.com/mcgalat \nPODCAST: https://itunes.apple.com/us/podcast/podcast-jayoe!/id1044254053?mt=2\nSTRAVA: https://www.strava.com/athletes/21659886 \nGARMIN: https://connect.garmin.com/modern/profile/JaYoeLife\n\n\n***MY VANLIFE TOUR LINKS***\nInterested in a WIFI Booster or Cellular Extender? Use the links below!\nhttps://www.wilsonamplifiers.com/?jayoe\nhttps://boltontechnical.com/?jayoe\nFind Lizard Skin Online at: https://lizardskin.com/\nBuy Lizard Skin thru my Affiliate links please!\nSound Barrier Deadener: https://amzn.to/3skCAud\nCeramic Thermal Barrier: https://amzn.to/3mdoEyh\nSpray Nozzle: https://amzn.to/3p6yT9u\nAgile Offroad - https://agileoffroad.com/\n\n--------- JAYOE MERCHANDISE ON REDBUBBLE ---------\nht (truncated) 11:00:13.138 [debug] QUERY OK source="sources" db=0.2ms idle=303.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:13.139 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:00:13.139 [debug] QUERY OK source="media_items" db=0.1ms idle=6.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10225] 11:00:13.139 [debug] Current batch of media processed. Will check again in 1000ms 11:00:14.140 [debug] Current batch of media processed. Will check again in 1000ms 11:00:15.141 [debug] Current batch of media processed. Will check again in 1000ms 11:00:16.142 [debug] Current batch of media processed. Will check again in 1000ms 11:00:17.143 [debug] Current batch of media processed. Will check again in 1000ms 11:00:18.144 [debug] Current batch of media processed. Will check again in 1000ms 11:00:19.145 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The 5 Biggest DIY Campervan Build Mistakes I Made || 5 Costly Mistakes We Made On Our Campervan Build || 5 things I regret on my self build campervan || 5 Things We Got Totally Wrong On Our Self-Build Campervan\n\nHowden Modified Van sponsor aBuckLife, we specialise in modified/converted van insurance & offer a club discount* (*subject to criteria) when calling the team on 01635 879 910 and mentioning \"aBuckLife\". Or use this link for a call back https://www.howdeninsurance.co.uk/common-pages/get-a-quote?root=1109&page=1130&int=11554\nBoth of my vans are insured with Howden and we genuinely rate them. They can also insure your car, home and travel and get a discount when you use my code.\n\nFollow us on Instagram @abucklifeofficial\n\nDownload Helpful Stuff on My Patreon for FREE \nhttps://patreon.com/aBuckLife?utm_medium=unknown&utm_source=join_link&utm_campaign=creatorshare_creator&utm_content=copyLink\n\nWhen we built our self-build campervan, we thought we had planned everything perfectly. But after travelling thousands of miles and actually living with the van, we realised there were a few things we got completely wrong.\n\nIn this video I’m sharing the 5 biggest mistakes we made on our campervan build, including decisions around side pods, battery capacity, storage space, weight, and fridge size. If you're planning your own DIY campervan conversion, these lessons could save you time, money, and a lot of frustration.\n\nBuilding a van is all about trade-offs, and some of the choices that seemed like great ideas during the build turned out to be things we would definitely change if we built another van.\n\nHopefully these insights help you design a better self-build campervan and avoid some of the mistakes we made.\n\n🔧 Quality Products We Use in Our Self-Build Camper Van\nThese are the tried-and-tested products that make our 4x4 VW Crafter and Ford Transit stealth camper builds functional, comfortable, and adventure-ready.\n\n- VANDERMOON MOONBOXES AND MOON ORGANISERS | We love all our VANDERMOON gear, from the moon boxes to the moon organisers our van would not be as functional and light weight without them.\nUse Code 'buck10' for 10% off your order! Check out Vandermoon here https://www.vandermoon.com/eng/en/logowanie?create_account=1&s=buck10\n(you do need to use the link for the discount to work!)\n- Use Van Space 3D to help design you own van. We found it really helpful to visualise the build. click the link below:\nhttps://abucklife--vanspace3d.thrivecart.com/vanspace-3d-lifetime/60bfc5e47b9bf/\n-Get Your Wolfbox G900 Pro Dash Cam\nOfficial Site |Code: WBSAVE10(£10 off)→ \nhttps://uk.wolfbox.com/products/wolfbox-2024-g900-pro-wifi-touch-screen-parking-monitoring-dash-cam-smart-mirror-with-starvis-678-sensor?ref=gqdvweeh\n- TRELINO TOILET| Our off grid travel would not be possible without our Trelino Toilet. Game Changer. \nClick the link https://tidd.ly/4gwZnsa and use the code 'abucklife' to receive a FREE accessories set when ordering a Trelino composting toilet.\n- AUXBEAM LIGHTING | Use this code 'ABL15' to save 15% off your first order and the link https://www.shareasale.com/u.cfm?d=1262373&m=67515&u=4545378\n- HELINOX | camping furniture is so lightweight, easy to set up and durable. Little man loves his mini chair. Use this link https://tidd.ly/41M7tZF and code 'VN7GQVZ43XDB' for 10% OFF. \n- SOLO STOVE | is amazing for a safe camp fire and is from www.adventurevanlife.com. Use code 'abucklife' for discount site wide.\n- AUTOTERM DIESEL HEATER| We stay warm with a 4KW AUTOTERM Diesel Heater and Engine Pre Heater. Use code 'abucklife' for discount at www.autoterm.store\n\nSome links in this description are affiliate links. When you buy through these links, I get a small commission at no extra cost to you. This really supports the channel and helps us to bring better content to you and we really appreciate the support. Thank you.", "duration" => 660, "filename" => "/downloads/Vanlife/2026-03-15 Don't Waste Time and Money | 5 Campervan Build Mistakes/Don't Waste Time and Money | 5 Campervan Build Mistakes [Wyqv40KmNOk].mkv", "id" => "Wyqv40KmNOk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Wyqv40KmNOk", "playlist_index" => 76, "timestamp" => 1773561600, "title" => "Don't Waste Time and Money | 5 Campervan Build Mistakes", "upload_date" => "20260315"} 11:00:19.146 [debug] QUERY OK source="sources" db=0.1ms idle=591.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:00:19.146 [debug] QUERY OK source="sources" db=0.1ms idle=591.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:19.146 [debug] QUERY OK source="media_items" db=0.4ms idle=591.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-15 08:00:00Z], 10] 11:00:19.148 [debug] QUERY OK source="media_items" db=1.3ms idle=592.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 5 Biggest DIY Campervan Build Mistakes I Made || 5 Costly Mistakes We Made On Our Campervan Build || 5 things I regret on my self build campervan || 5 Things We Got Totally Wrong On Our Self-Build Campervan\n\nHowden Modified Van sponsor aBuckLife, we specialise in modified/converted van insurance & offer a club discount* (*subject to criteria) when calling the team on 01635 879 910 and mentioning \"aBuckLife\". Or use this link for a call back https://www.howdeninsurance.co.uk/common-pages/get-a-quote?root=1109&page=1130&int=11554\nBoth of my vans are insured with Howden and we genuinely rate them. They can also insure your car, home and travel and get a discount when you use my code.\n\nFollow us on Instagram @abucklifeofficial\n\nDownload Helpful Stuff on My Patreon for FREE \nhttps://patreon.com/aBuckLife?utm_medium=unknown&utm_source=join_link&utm_campaign=creatorshare_creator&utm_content=copyLink\n\nWhen we built our self-build campervan, we thought we had planned everything perfectly. But after travelling thousands of miles and actually living with the van, we realised there were a few things we got completely wrong.\n\nIn this video I’m sharing the 5 biggest mistakes we made on our campervan build, including decisions around side pods, battery capacity, storage space, weight, and fridge size. If you're planning your own DIY campervan conversion, these lessons could save you time, money, and a lot of frustration.\n\nBuilding a van is all about trade-offs, and some of the choices that seemed like great ideas during the build turned out to be things we would definitely change if we built another van.\n\nHopefully these insights help you design a better self-build campervan and avoid some of the mistakes we made.\n\n🔧 Quality Products We Use in Our Self-Build Camper Van\nThese are the tried-and-tested products that make our 4x4 VW Crafter and Ford Transit stealth camper builds functional, comfortable, and adventure-ready.\n\n- VANDERMOON MOONBOXES AND MOON ORGANISERS | We love all our VANDERMOON gear, from the moon boxes to the moon organisers our van would not be as functional and light weight without them.\nUse Code 'buck10' for 10% off your order! Check out Vandermoon here https://www.vandermoon.com/eng/en/logowanie?create_account=1&s=buck10\n(you do need to use the link for the discount to work!)\n- Use Van Space 3D to help design you own van. We found it really helpful to visualise the build. click the link below:\nhttps://abucklife--vanspace3d.thrivecart.com/vanspace-3d-lifetime/60bfc5e47b9bf/\n-Get Your Wolfbox G900 Pro Dash Cam\nOfficial Site |Code: WBSAVE10(£10 off)→ \nhttps://uk.wolfbox.com/products/wolfbox-2024-g900-pro-wifi-touch-screen-parking-monitoring-dash-cam-smart-mirror-with-starvis-678-sensor?ref=gqdvweeh\n- TRELINO TOILET| Our off grid travel would not be possible without our Trelino Toilet. Game Changer. \nClick the link https://tidd.ly/4gwZnsa and use the code 'abucklife' to receive a FREE accessories set when ordering a Trelino composting toilet.\n- AUXBEAM LIGHTING | Use this code 'ABL15' to save 15% off your first order and the link https://www.shareasale.com/u.cfm?d=1262373&m=67515&u=4545378\n- HELINOX | camping furniture is so lightweight, easy to set up and durable. Little man loves his mini chair. Use this link https://tidd.ly/41M7tZF and code 'VN7GQVZ43XDB' for 10% OFF. \n- SOLO STOVE | is amazing for a safe camp fire and is from www.adventurevanlife.com. Use code 'abucklife' for discount site wide.\n- AUTOTERM DIESEL HEATER| We stay warm with a 4KW AUTOTERM Diesel Heater and Engine Pre Heater. Use code 'abucklife' for discount at www.autoterm.store\n\nSome links in this description are affiliate links. When you buy through these links, I get a small commission at no extra cost to you. This really supports the channel and helps us to bring better content to you and we really appreciate the support. Thank you.", "Don't Waste Time and Money | 5 Campervan Build Mistakes", "350fdb2b-737f-4aca-93a2-b2ab24eb6de0", 10, [], 660, false, "Wyqv40KmNOk", "https://www.youtube.com/watch?v=Wyqv40KmNOk", 76, "/downloads/Vanlife/2026-03-15 Don't Waste Time and Money | 5 Campervan Build Mistakes/Don't Waste Time and Money | 5 Campervan Build Mistakes [Wyqv40KmNOk].mkv", false, false, false, 1, ~U[2026-03-15 08:00:00Z], ~U[2026-07-11 15:00:19Z], ~U[2026-07-11 15:00:19Z], "The 5 Biggest DIY Campervan Build Mistakes I Made || 5 Costly Mistakes We Made On Our Campervan Build || 5 things I regret on my self build campervan || 5 Things We Got Totally Wrong On Our Self-Build Campervan\n\nHowden Modified Van sponsor aBuckLife, we specialise in modified/converted van insurance & offer a club discount* (*subject to criteria) when calling the team on 01635 879 910 and mentioning \"aBuckLife\". Or use this link for a call back https://www.howdeninsurance.co.uk/common-pages/get-a-quote?root=1109&page=1130&int=11554\nBoth of my vans are insured with Howden and we genuinely rate them. They can also insure your car, home and travel and get a discount when you use my code.\n\nFollow us on Instagram @abucklifeofficial\n\nDownload Helpful Stuff on My Patreon for FREE \nhttps://patreon.com/aBuckLife?utm_medium=unknown&utm_source=join_link&utm_campaign=creatorshare_creator&utm_content=copyLink\n\nWhen we built our self-build campervan, we thought we had planned everything perfectly. But after travelling thousands of miles and actually living with the van, we realised there were a few things we got completely wrong.\n\nIn this video I’m sharing the 5 biggest mistakes we made on our campervan build, including decisions around side pods, battery capacity, storage space, weight, and fridge size. If you're planning your own DIY campervan conversion, these lessons could save you time, money, and a lot of frustration.\n\nBuilding a van is all about trade-offs, and some of the choices that seemed like great ideas during the build turned out to be things we would definitely change if we built another van.\n\nHopefully these insights help you design a better self-build campervan and avoid some of the mistakes we made.\n\n🔧 Quality Products We Use in Our Self-Build Camper Van\nThese are the tried-and-tested products that make our 4x4 VW Crafter and Ford Transit stealth camper builds functional, comfortable, and adventure-ready.\n\n- VANDERMOON MOONBOXES AND MOON ORGANISERS | We love all our VANDERMOON gear, from the moon boxes to the moon organisers our van would not be as functional and light weight without them.\nUse Code 'buck10' for 10% off your order! Check out Vandermoon here https://www.vandermoon.com/eng/en/logowanie?create_account=1&s=buck10\n(you do need to use the link for the discount to work!)\n- Use Van Space 3D to help design you own van. We found it really helpful to visualise the build. click the link below:\nhttps://abucklife--vanspace3d.thrivecart.com/vanspace-3d-lifetime/60bfc5e47b9bf/\n-Get Your Wolfbox G900 Pro Dash Cam\nOfficial Site |Code: WBSAVE10(£10 off)→ \nhttps://uk.wolfbox.com/products/wolfbox-2024-g900-pro-wifi-touch-screen-parking-monitoring-dash-cam-smart-mirror-with-starvis-678-sensor?ref=gqdvweeh\n- TRELINO TOILET| Our off grid travel would not be possible without our Trelino Toilet. Game Changer. \nClick the link https://tidd.ly/4gwZnsa and use the code 'abucklife' to receive a FREE accessories s (truncated) 11:00:19.149 [debug] QUERY OK source="sources" db=0.1ms idle=306.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:19.149 [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] 11:00:19.149 [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 [10227] 11:00:19.149 [debug] Current batch of media processed. Will check again in 1000ms 11:00:20.150 [debug] Current batch of media processed. Will check again in 1000ms 11:00:21.151 [debug] Current batch of media processed. Will check again in 1000ms 11:00:22.152 [debug] Current batch of media processed. Will check again in 1000ms 11:00:23.153 [debug] Current batch of media processed. Will check again in 1000ms 11:00:24.154 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "After two years of traveling in our adventure van, we have learned that van life is not always what it looks like online. The epic views, total freedom, and effortless living exist sometimes, but a lot of the reality never makes it into the videos.\n\nWe talk through the biggest van life lies, from parking lot nights and shared space challenges to where a van can realistically go, what van life actually costs, and why being fully self-sufficient is harder than it sounds. We also share the habits and mindset shifts that have made life on the road more sustainable in our Winnebago Revel.\n\nVan life is not fake, but it is not a fantasy either. Once expectations change, the experience gets a lot better.\n\n0:00 - Van Life Lies\n0:31 - Always Epic Views\n1:22 - Van life alone\n2:50 - Go Anywhere you want\n3:34 - Van Life is Cheap\n5:23 - Self Sufficient\n7:35 - Weather \n9:25 - Park and Relax\n \nThis video is NOT SPONSORED. This post contains affiliate links, meaning we get a commission if you decide to make a purchase through the links at no cost to you. \n\n🛸 Our drone footage is captured legally and responsibly under FAA Part 107 certification.\n\n• • • •\n⛺️ EXPLORE TREK ADVENTURE AMAZON STORE ⛺️ \nhttps://www.amazon.com/shop/exploretrekadventure\n\n 📺 Seen on YouTube: https://amzn.to/46tkiYM \n📱 Seen on Tiktok: https://amzn.to/3RPUP7r \n🎒 Backpacks: https://amzn.to/46MQG8G \n🏕️ Camp Shelters & Sleep Systems: https://amzn.to/3FfpyDe \n🥾 Day Hiking Gear: https://amzn.to/46rzHbZ \n🧰 DIY Solar Battery Box: https://amzn.to/46s2jSo \n🍳 Camp Kitchen: https://amzn.to/3tuwdHe \n🛶 Kayak Gear: https://amzn.to/3PUqqlE \n🚽 Camp Toilet: https://amzn.to/45sLZ2o \n🪑 Camp Chairs: https://amzn.to/3Qc5iIZ \n🚐 Rooftop Tent Gear: https://amzn.to/45rN1vB \n🏃🏻\u200D♂️ Running Gear: https://amzn.to/48QGP3u \n📸 Camera Gear: https://amzn.to/3PQRcLY \n🦟 Bug Defense: https://amzn.to/48RU2c4 \n\n• • • •\nCheck out our Website: http://ExploreTrekAdventure.com \nhttp://instagram.com/exploretrekadventure\nhttp://tiktok.com/@exploretrekadventure\n\n#vanlife #winnebagorevel #adventurevan", "duration" => 689, "filename" => "/downloads/Vanlife/2026-01-11 The 7 Biggest Lies About Vanlife (No One Tells You This)/The 7 Biggest Lies About Vanlife (No One Tells You This) [UWJIUtySjT4].mkv", "id" => "UWJIUtySjT4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UWJIUtySjT4", "playlist_index" => 77, "timestamp" => 1768150857, "title" => "The 7 Biggest Lies About Vanlife (No One Tells You This)", "upload_date" => "20260111"} 11:00:24.155 [debug] QUERY OK source="sources" db=0.1ms idle=1600.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:00:24.155 [debug] QUERY OK source="sources" db=0.0ms idle=1600.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:24.155 [debug] QUERY OK source="media_items" db=0.3ms idle=1600.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-11 17:00:57Z], 10] 11:00:24.157 [debug] QUERY OK source="media_items" db=1.0ms idle=1309.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["After two years of traveling in our adventure van, we have learned that van life is not always what it looks like online. The epic views, total freedom, and effortless living exist sometimes, but a lot of the reality never makes it into the videos.\n\nWe talk through the biggest van life lies, from parking lot nights and shared space challenges to where a van can realistically go, what van life actually costs, and why being fully self-sufficient is harder than it sounds. We also share the habits and mindset shifts that have made life on the road more sustainable in our Winnebago Revel.\n\nVan life is not fake, but it is not a fantasy either. Once expectations change, the experience gets a lot better.\n\n0:00 - Van Life Lies\n0:31 - Always Epic Views\n1:22 - Van life alone\n2:50 - Go Anywhere you want\n3:34 - Van Life is Cheap\n5:23 - Self Sufficient\n7:35 - Weather \n9:25 - Park and Relax\n \nThis video is NOT SPONSORED. This post contains affiliate links, meaning we get a commission if you decide to make a purchase through the links at no cost to you. \n\n🛸 Our drone footage is captured legally and responsibly under FAA Part 107 certification.\n\n• • • •\n⛺️ EXPLORE TREK ADVENTURE AMAZON STORE ⛺️ \nhttps://www.amazon.com/shop/exploretrekadventure\n\n 📺 Seen on YouTube: https://amzn.to/46tkiYM \n📱 Seen on Tiktok: https://amzn.to/3RPUP7r \n🎒 Backpacks: https://amzn.to/46MQG8G \n🏕️ Camp Shelters & Sleep Systems: https://amzn.to/3FfpyDe \n🥾 Day Hiking Gear: https://amzn.to/46rzHbZ \n🧰 DIY Solar Battery Box: https://amzn.to/46s2jSo \n🍳 Camp Kitchen: https://amzn.to/3tuwdHe \n🛶 Kayak Gear: https://amzn.to/3PUqqlE \n🚽 Camp Toilet: https://amzn.to/45sLZ2o \n🪑 Camp Chairs: https://amzn.to/3Qc5iIZ \n🚐 Rooftop Tent Gear: https://amzn.to/45rN1vB \n🏃🏻\u200D♂️ Running Gear: https://amzn.to/48QGP3u \n📸 Camera Gear: https://amzn.to/3PQRcLY \n🦟 Bug Defense: https://amzn.to/48RU2c4 \n\n• • • •\nCheck out our Website: http://ExploreTrekAdventure.com \nhttp://instagram.com/exploretrekadventure\nhttp://tiktok.com/@exploretrekadventure\n\n#vanlife #winnebagorevel #adventurevan", "The 7 Biggest Lies About Vanlife (No One Tells You This)", "521add8d-2f1f-40b2-b5a1-6c1c9f2e8b69", 10, [], 689, false, "UWJIUtySjT4", "https://www.youtube.com/watch?v=UWJIUtySjT4", 77, "/downloads/Vanlife/2026-01-11 The 7 Biggest Lies About Vanlife (No One Tells You This)/The 7 Biggest Lies About Vanlife (No One Tells You This) [UWJIUtySjT4].mkv", false, false, false, 1, ~U[2026-01-11 17:00:57Z], ~U[2026-07-11 15:00:24Z], ~U[2026-07-11 15:00:24Z], "After two years of traveling in our adventure van, we have learned that van life is not always what it looks like online. The epic views, total freedom, and effortless living exist sometimes, but a lot of the reality never makes it into the videos.\n\nWe talk through the biggest van life lies, from parking lot nights and shared space challenges to where a van can realistically go, what van life actually costs, and why being fully self-sufficient is harder than it sounds. We also share the habits and mindset shifts that have made life on the road more sustainable in our Winnebago Revel.\n\nVan life is not fake, but it is not a fantasy either. Once expectations change, the experience gets a lot better.\n\n0:00 - Van Life Lies\n0:31 - Always Epic Views\n1:22 - Van life alone\n2:50 - Go Anywhere you want\n3:34 - Van Life is Cheap\n5:23 - Self Sufficient\n7:35 - Weather \n9:25 - Park and Relax\n \nThis video is NOT SPONSORED. This post contains affiliate links, meaning we get a commission if you decide to make a purchase through the links at no cost to you. \n\n🛸 Our drone footage is captured legally and responsibly under FAA Part 107 certification.\n\n• • • •\n⛺️ EXPLORE TREK ADVENTURE AMAZON STORE ⛺️ \nhttps://www.amazon.com/shop/exploretrekadventure\n\n 📺 Seen on YouTube: https://amzn.to/46tkiYM \n📱 Seen on Tiktok: https://amzn.to/3RPUP7r \n🎒 Backpacks: https://amzn.to/46MQG8G \n🏕️ Camp Shelters & Sleep Systems: https://amzn.to/3FfpyDe \n🥾 Day Hiking Gear: https://amzn.to/46rzHbZ \n🧰 DIY Solar Battery Box: https://amzn.to/46s2jSo \n🍳 Camp Kitchen: https://amzn.to/3tuwdHe \n🛶 Kayak Gear: https://amzn.to/3PUqqlE \n🚽 Camp Toilet: https://amzn.to/45sLZ2o \n🪑 Camp Chairs: https://amzn.to/3Qc5iIZ \n🚐 Rooftop Tent Gear: https://amzn.to/45rN1vB \n🏃🏻\u200D♂️ Running Gear: https://amzn.to/48QGP3u \n📸 Camera Gear: https://amzn.to/3PQRcLY \n🦟 Bug Defense: https://amzn.to/48RU2c4 \n\n• • • •\nCheck out our Website: http://ExploreTrekAdventure.com \nhttp://instagram.com/exploretrekadventure\nhttp://tiktok.com/@exploretrekadventure\n\n#vanlife #winnebagorevel #adventurevan", "The 7 Biggest Lies About Vanlife (No One Tells You This)", 10, 689, false, "UWJIUtySjT4", "https://www.youtube.com/watch?v=UWJIUtySjT4", "/downloads/Vanlife/2026-01-11 The 7 Biggest Lies About Vanlife (No One Tells You This)/The 7 Biggest Lies About Vanlife (No One Tells You This) [UWJIUtySjT4].mkv", false, ~U[2026-01-11 17:00:57Z]] 11:00:24.157 [debug] QUERY OK source="sources" db=0.1ms idle=309.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:24.157 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:00:24.158 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10229] 11:00:24.158 [debug] Current batch of media processed. Will check again in 1000ms 11:00:25.158 [debug] Current batch of media processed. Will check again in 1000ms 11:00:26.159 [debug] Current batch of media processed. Will check again in 1000ms 11:00:27.160 [debug] Current batch of media processed. Will check again in 1000ms 11:00:28.161 [debug] Current batch of media processed. Will check again in 1000ms 11:00:29.162 [debug] Current batch of media processed. Will check again in 1000ms 11:00:30.163 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Daniel Yudchitz and his father, Bill, are both architects who took their love of craft, cabins, and Swiss precision in architecture (e.g. Peter Zumthor) and created a CNC-cut cabin crafted to a fraction of an inch.\n\nThe home is built with interlocking structural panels and can be disassembled. In fact, the father/son team built most of it in their parking lot, moved it, and completed the build on the grounds of a state fair before moving it once again to its final resting place on their property on Lake Superior (in far north Wisconsin near Bayfield).\n\nThe furniture was built to interlock and morph from table and benches into a disabled-accessible bed.\n\n— Revelations Architecture: http://www.revarch.com/\n— Drone footage: https://www.youtube.com/channel/UCtHxXQT1icYEEt-O1d1aQuw\n\nOriginal story: https://faircompanies.com/videos/transformer-cnc-cabin-by-a-lake-as-a-father-son-work-dialogue/", "duration" => 1240, "filename" => "/downloads/Vanlife/2017-12-10 Transformer CNC cabin by a lake becomes father-son work dialogue/Transformer CNC cabin by a lake becomes father-son work dialogue [mVEOTauSAPg].mkv", "id" => "mVEOTauSAPg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mVEOTauSAPg", "playlist_index" => 78, "timestamp" => 1512935809, "title" => "Transformer CNC cabin by a lake becomes father-son work dialogue", "upload_date" => "20171210"} 11:00:30.164 [debug] QUERY OK source="sources" db=0.1ms idle=609.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:00:30.164 [debug] QUERY OK source="sources" db=0.1ms idle=609.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:30.164 [debug] QUERY OK source="media_items" db=0.4ms idle=610.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2017-12-10 19:56:49Z], 10] 11:00:30.166 [debug] QUERY OK source="media_items" db=0.7ms idle=610.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Daniel Yudchitz and his father, Bill, are both architects who took their love of craft, cabins, and Swiss precision in architecture (e.g. Peter Zumthor) and created a CNC-cut cabin crafted to a fraction of an inch.\n\nThe home is built with interlocking structural panels and can be disassembled. In fact, the father/son team built most of it in their parking lot, moved it, and completed the build on the grounds of a state fair before moving it once again to its final resting place on their property on Lake Superior (in far north Wisconsin near Bayfield).\n\nThe furniture was built to interlock and morph from table and benches into a disabled-accessible bed.\n\n— Revelations Architecture: http://www.revarch.com/\n— Drone footage: https://www.youtube.com/channel/UCtHxXQT1icYEEt-O1d1aQuw\n\nOriginal story: https://faircompanies.com/videos/transformer-cnc-cabin-by-a-lake-as-a-father-son-work-dialogue/", "Transformer CNC cabin by a lake becomes father-son work dialogue", "9a2381f8-4c16-4986-bbf2-28e6887e1ab0", 10, [], 1240, false, "mVEOTauSAPg", "https://www.youtube.com/watch?v=mVEOTauSAPg", 78, "/downloads/Vanlife/2017-12-10 Transformer CNC cabin by a lake becomes father-son work dialogue/Transformer CNC cabin by a lake becomes father-son work dialogue [mVEOTauSAPg].mkv", false, false, false, 1, ~U[2017-12-10 19:56:49Z], ~U[2026-07-11 15:00:30Z], ~U[2026-07-11 15:00:30Z], "Daniel Yudchitz and his father, Bill, are both architects who took their love of craft, cabins, and Swiss precision in architecture (e.g. Peter Zumthor) and created a CNC-cut cabin crafted to a fraction of an inch.\n\nThe home is built with interlocking structural panels and can be disassembled. In fact, the father/son team built most of it in their parking lot, moved it, and completed the build on the grounds of a state fair before moving it once again to its final resting place on their property on Lake Superior (in far north Wisconsin near Bayfield).\n\nThe furniture was built to interlock and morph from table and benches into a disabled-accessible bed.\n\n— Revelations Architecture: http://www.revarch.com/\n— Drone footage: https://www.youtube.com/channel/UCtHxXQT1icYEEt-O1d1aQuw\n\nOriginal story: https://faircompanies.com/videos/transformer-cnc-cabin-by-a-lake-as-a-father-son-work-dialogue/", "Transformer CNC cabin by a lake becomes father-son work dialogue", 10, 1240, false, "mVEOTauSAPg", "https://www.youtube.com/watch?v=mVEOTauSAPg", "/downloads/Vanlife/2017-12-10 Transformer CNC cabin by a lake becomes father-son work dialogue/Transformer CNC cabin by a lake becomes father-son work dialogue [mVEOTauSAPg].mkv", false, ~U[2017-12-10 19:56:49Z]] 11:00:30.166 [debug] QUERY OK source="sources" db=0.2ms idle=311.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:30.166 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:00:30.167 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10231] 11:00:30.167 [debug] Current batch of media processed. Will check again in 1000ms 11:00:30.479 [info] {"source":"oban","duration":750,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:00:31.167 [debug] Current batch of media processed. Will check again in 1000ms 11:00:32.168 [debug] Current batch of media processed. Will check again in 1000ms 11:00:33.169 [debug] Current batch of media processed. Will check again in 1000ms 11:00:34.170 [debug] Current batch of media processed. Will check again in 1000ms 11:00:35.171 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "From start to finish here are some highlights about how I built my kitchen cabinet. This is going in a 2022 Mercedes Sprinter 4x4. I’m sorry about all the time lapse in the starting build footage, but that is what I captured when initially working on this cabinet. The chapters below try to list the main concepts, but there are quite a few miscellaneous tips and tricks scattered throughout. \n\n0:00 Intro\n1:26 Initial Design Considerations\n2:05 Initial Carcass Assembly\n3:41 Pre Installation Tips\n4:31 #1 Electrical and Plumbing Accommodations\n5:33 #2 Drawer and Door Latch Alignment Made Easy\n8:44 Continuous Grain Obsession\n11:43 Touching Up and Sanding Unique Plywood\n14:29 Human CNC Router Setup\n16:00 Being a Human CNC\n17:09 Flush Trimming Frame Outside\n17:21 Small Cutout Stuff\n18:23 Finished Product\n\nIf you found this entertaining, educational or even enraging, consider buying me a coffee...or a beer;). Please use the link:\nhttps://www.buymeacoffee.com/projectofscience \nThank you for your support!\n\nRelated products and links (Amazon links help me out, thank you!)\n\nSouthco M1-2A-13-5 Drawer Latches I use: https://amzn.to/3Zixlrz\n\nScribe for marking locations through small holes: https://amzn.to/3zKzYYM \n\nBesides a table saw, most of these techniques involve the router. I recommend a small trim or palm router for most van work as you aren’t hogging off thick wood cuts usually. \n\nMakita Router I use: https://amzn.to/40jlScx \nThe Plunge Base is very helpful for lots of projects, and the fixed base is easier to operate with one hand. \n\nGuide Bushing Set: https://amzn.to/41cKiVm \nDepending on your router you may not need the adapter, or might need a different one? This works with my Makita. \n\n1/16” Router Bits:\nFor thin woods I’ve been using this: https://amzn.to/40RHXzn \nFor heavier full depth cuts I’ve had better luck with: https://amzn.to/40JzNsJ \n\nMy favorite Flush Trim Bit: https://amzn.to/3Km2HrR \nAlmost any will do though. Pay attention if you need top or bottom bearing, or both like this one. \n\nCorner Radius Drawing Templates: https://amzn.to/40I9eEN", "duration" => 1146, "filename" => "/downloads/Vanlife/2023-04-08 Building a Lightweight Van Conversion Kitchen Cabinet/Building a Lightweight Van Conversion Kitchen Cabinet [ilCfLkSM-jU].mp4", "id" => "ilCfLkSM-jU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ilCfLkSM-jU", "playlist_index" => 79, "timestamp" => 1680969634, "title" => "Building a Lightweight Van Conversion Kitchen Cabinet", "upload_date" => "20230408"} 11:00:35.172 [debug] QUERY OK source="sources" db=0.1ms idle=1617.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:00:35.172 [debug] QUERY OK source="sources" db=0.0ms idle=1617.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:35.173 [debug] QUERY OK source="media_items" db=0.4ms idle=1617.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-08 16:00:34Z], 10] 11:00:35.174 [debug] QUERY OK source="media_items" db=1.1ms idle=1314.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["From start to finish here are some highlights about how I built my kitchen cabinet. This is going in a 2022 Mercedes Sprinter 4x4. I’m sorry about all the time lapse in the starting build footage, but that is what I captured when initially working on this cabinet. The chapters below try to list the main concepts, but there are quite a few miscellaneous tips and tricks scattered throughout. \n\n0:00 Intro\n1:26 Initial Design Considerations\n2:05 Initial Carcass Assembly\n3:41 Pre Installation Tips\n4:31 #1 Electrical and Plumbing Accommodations\n5:33 #2 Drawer and Door Latch Alignment Made Easy\n8:44 Continuous Grain Obsession\n11:43 Touching Up and Sanding Unique Plywood\n14:29 Human CNC Router Setup\n16:00 Being a Human CNC\n17:09 Flush Trimming Frame Outside\n17:21 Small Cutout Stuff\n18:23 Finished Product\n\nIf you found this entertaining, educational or even enraging, consider buying me a coffee...or a beer;). Please use the link:\nhttps://www.buymeacoffee.com/projectofscience \nThank you for your support!\n\nRelated products and links (Amazon links help me out, thank you!)\n\nSouthco M1-2A-13-5 Drawer Latches I use: https://amzn.to/3Zixlrz\n\nScribe for marking locations through small holes: https://amzn.to/3zKzYYM \n\nBesides a table saw, most of these techniques involve the router. I recommend a small trim or palm router for most van work as you aren’t hogging off thick wood cuts usually. \n\nMakita Router I use: https://amzn.to/40jlScx \nThe Plunge Base is very helpful for lots of projects, and the fixed base is easier to operate with one hand. \n\nGuide Bushing Set: https://amzn.to/41cKiVm \nDepending on your router you may not need the adapter, or might need a different one? This works with my Makita. \n\n1/16” Router Bits:\nFor thin woods I’ve been using this: https://amzn.to/40RHXzn \nFor heavier full depth cuts I’ve had better luck with: https://amzn.to/40JzNsJ \n\nMy favorite Flush Trim Bit: https://amzn.to/3Km2HrR \nAlmost any will do though. Pay attention if you need top or bottom bearing, or both like this one. \n\nCorner Radius Drawing Templates: https://amzn.to/40I9eEN", "Building a Lightweight Van Conversion Kitchen Cabinet", "0ebf0416-e841-4acb-b30d-c9f165b4b647", 10, [], 1146, false, "ilCfLkSM-jU", "https://www.youtube.com/watch?v=ilCfLkSM-jU", 79, "/downloads/Vanlife/2023-04-08 Building a Lightweight Van Conversion Kitchen Cabinet/Building a Lightweight Van Conversion Kitchen Cabinet [ilCfLkSM-jU].mp4", false, false, false, 1, ~U[2023-04-08 16:00:34Z], ~U[2026-07-11 15:00:35Z], ~U[2026-07-11 15:00:35Z], "From start to finish here are some highlights about how I built my kitchen cabinet. This is going in a 2022 Mercedes Sprinter 4x4. I’m sorry about all the time lapse in the starting build footage, but that is what I captured when initially working on this cabinet. The chapters below try to list the main concepts, but there are quite a few miscellaneous tips and tricks scattered throughout. \n\n0:00 Intro\n1:26 Initial Design Considerations\n2:05 Initial Carcass Assembly\n3:41 Pre Installation Tips\n4:31 #1 Electrical and Plumbing Accommodations\n5:33 #2 Drawer and Door Latch Alignment Made Easy\n8:44 Continuous Grain Obsession\n11:43 Touching Up and Sanding Unique Plywood\n14:29 Human CNC Router Setup\n16:00 Being a Human CNC\n17:09 Flush Trimming Frame Outside\n17:21 Small Cutout Stuff\n18:23 Finished Product\n\nIf you found this entertaining, educational or even enraging, consider buying me a coffee...or a beer;). Please use the link:\nhttps://www.buymeacoffee.com/projectofscience \nThank you for your support!\n\nRelated products and links (Amazon links help me out, thank you!)\n\nSouthco M1-2A-13-5 Drawer Latches I use: https://amzn.to/3Zixlrz\n\nScribe for marking locations through small holes: https://amzn.to/3zKzYYM \n\nBesides a table saw, most of these techniques involve the router. I recommend a small trim or palm router for most van work as you aren’t hogging off thick wood cuts usually. \n\nMakita Router I use: https://amzn.to/40jlScx \nThe Plunge Base is very helpful for lots of projects, and the fixed base is easier to operate with one hand. \n\nGuide Bushing Set: https://amzn.to/41cKiVm \nDepending on your router you may not need the adapter, or might need a different one? This works with my Makita. \n\n1/16” Router Bits:\nFor thin woods I’ve been using this: https://amzn.to/40RHXzn \nFor heavier full depth cuts I’ve had better luck with: https://amzn.to/40JzNsJ \n\nMy favorite Flush Trim Bit: https://amzn.to/3Km2HrR \nAlmost any will do though. Pay attention if you need top or bottom bearing, or both like this one. \n\nCorner Radius Drawing Templates: https://amzn.to/40I9eEN", "Building a Lightweight Van Conversion Kitchen Cabinet", 10, 1146, false, "ilCfLkSM-jU", "https://www.youtube.com/watch?v=ilCfLkSM-jU", "/downloads/Vanlife/2023-04-08 Building a Lightweight Van Conversion Kitchen Cabinet/Building a Lightweight Van Conversion Kitchen Cabinet [ilCfLkSM-jU].mp4", false, ~U[2023-04-08 16:00:34Z]] 11:00:35.174 [debug] QUERY OK source="sources" db=0.1ms idle=314.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:35.175 [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] 11:00:35.175 [debug] QUERY OK source="media_items" db=0.2ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10233] 11:00:35.175 [debug] Current batch of media processed. Will check again in 1000ms 11:00:36.176 [debug] Current batch of media processed. Will check again in 1000ms 11:00:37.177 [debug] Current batch of media processed. Will check again in 1000ms 11:00:38.178 [debug] Current batch of media processed. Will check again in 1000ms 11:00:39.179 [debug] Current batch of media processed. Will check again in 1000ms 11:00:40.180 [debug] Current batch of media processed. Will check again in 1000ms 11:00:41.181 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Brandon sharing yet another stealth van build with us. He has spent years fitting so much into a very small space.\n\n**My Information and Products I use:**\nBrand Deals/Business Inquiries: brandon@thestation.io\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nPartnerships/Affiliates I personally work with:\nLooking for great batteries? These are the batteries in my Van and Jeep AND now new TINY HOME!\nReLion Battery:\nhttp://relionbattery.com?aff=6\nRelion Battery Discount Code: Ghost5\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nEpoxy Used for Woodworking and any Finishing\nhttp://www.totalboat.com/\nDiscount Code: tbghost - for 10% off first order\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nVanLife Academy from Project VanLife:\nhttps://toccighost--projectvanlife.thrivecart.com/van-life-academy/\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products (used in 2nd van and new Tiny Home build):\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nGuzzle H2O Water Filtration system:\nhttps://www.guzzleh2o.com?ref=6\nI use the portable one and the built-in one!\n\nLion Energy:\nhttps://lionenergy.com/discount/Ghost15?redirect=%2Fproducts%2Flion-safari-ut-1300%3Fafmc%3D5u\nDiscount Code: Ghost15\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "duration" => 1799, "filename" => "/downloads/Vanlife/2020-11-27 STEALTH Luxury Van Tour - Expandable Recirculating Shower, A⧸C, 48v Power/STEALTH Luxury Van Tour - Expandable Recirculating Shower, A⧸C, 48v Power [63VaJIXP874].mp4", "id" => "63VaJIXP874", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=63VaJIXP874", "playlist_index" => 80, "timestamp" => 1606496404, "title" => "STEALTH Luxury Van Tour - Expandable Recirculating Shower, A/C, 48v Power", "upload_date" => "20201127"} 11:00:41.182 [debug] QUERY OK source="sources" db=0.1ms idle=627.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:00:41.182 [debug] QUERY OK source="sources" db=0.0ms idle=627.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:41.182 [debug] QUERY OK source="media_items" db=0.4ms idle=628.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-11-27 17:00:04Z], 10] 11:00:41.184 [debug] QUERY OK source="media_items" db=1.2ms idle=628.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Brandon sharing yet another stealth van build with us. He has spent years fitting so much into a very small space.\n\n**My Information and Products I use:**\nBrand Deals/Business Inquiries: brandon@thestation.io\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nPartnerships/Affiliates I personally work with:\nLooking for great batteries? These are the batteries in my Van and Jeep AND now new TINY HOME!\nReLion Battery:\nhttp://relionbattery.com?aff=6\nRelion Battery Discount Code: Ghost5\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nEpoxy Used for Woodworking and any Finishing\nhttp://www.totalboat.com/\nDiscount Code: tbghost - for 10% off first order\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nVanLife Academy from Project VanLife:\nhttps://toccighost--projectvanlife.thrivecart.com/van-life-academy/\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products (used in 2nd van and new Tiny Home build):\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nGuzzle H2O Water Filtration system:\nhttps://www.guzzleh2o.com?ref=6\nI use the portable one and the built-in one!\n\nLion Energy:\nhttps://lionenergy.com/discount/Ghost15?redirect=%2Fproducts%2Flion-safari-ut-1300%3Fafmc%3D5u\nDiscount Code: Ghost15\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "STEALTH Luxury Van Tour - Expandable Recirculating Shower, A/C, 48v Power", "0daa5f52-6c82-446d-9788-53dc15172c0b", 10, [], 1799, false, "63VaJIXP874", "https://www.youtube.com/watch?v=63VaJIXP874", 80, "/downloads/Vanlife/2020-11-27 STEALTH Luxury Van Tour - Expandable Recirculating Shower, A⧸C, 48v Power/STEALTH Luxury Van Tour - Expandable Recirculating Shower, A⧸C, 48v Power [63VaJIXP874].mp4", false, false, false, 1, ~U[2020-11-27 17:00:04Z], ~U[2026-07-11 15:00:41Z], ~U[2026-07-11 15:00:41Z], "Brandon sharing yet another stealth van build with us. He has spent years fitting so much into a very small space.\n\n**My Information and Products I use:**\nBrand Deals/Business Inquiries: brandon@thestation.io\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nPartnerships/Affiliates I personally work with:\nLooking for great batteries? These are the batteries in my Van and Jeep AND now new TINY HOME!\nReLion Battery:\nhttp://relionbattery.com?aff=6\nRelion Battery Discount Code: Ghost5\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nEpoxy Used for Woodworking and any Finishing\nhttp://www.totalboat.com/\nDiscount Code: tbghost - for 10% off first order\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nVanLife Academy from Project VanLife:\nhttps://toccighost--projectvanlife.thrivecart.com/van-life-academy/\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products (used in 2nd van and new Tiny Home build):\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nGuzzle H2O Water Filtration system:\nhttps://www.guzzleh2o.com?ref=6\nI use the portable one and the built-in one!\n\nLion Energy:\nhttps://lionenergy.com/discount/Ghost15?redirect=%2Fproducts%2Flion-safari-ut-1300%3Fafmc%3D5u\nDiscount Code: Ghost15\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "STEALTH Luxury Van Tour - Expandable Recirculating Shower, A/C, 48v Power", 10, 1799, false, "63VaJIXP874", "https://www.youtube.com/watch?v=63VaJIXP874", "/downloads/Vanlife/2020-11-27 STEALTH Luxury Van Tour - Expandable Recirculating Shower, A⧸C, 48v Power/STEALTH Luxury Van Tour - Expandable Recirculating Shower, A⧸C, 48v Power [63VaJIXP874].mp4", false, ~U[2020-11-27 17:00:04Z]] 11:00:41.185 [debug] QUERY OK source="sources" db=0.2ms idle=318.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:41.185 [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] 11:00:41.185 [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 [10235] 11:00:41.185 [debug] Current batch of media processed. Will check again in 1000ms 11:00:42.186 [debug] Current batch of media processed. Will check again in 1000ms 11:00:43.187 [debug] Current batch of media processed. Will check again in 1000ms 11:00:44.188 [debug] Current batch of media processed. Will check again in 1000ms 11:00:45.189 [debug] Current batch of media processed. Will check again in 1000ms 11:00:46.190 [debug] Current batch of media processed. Will check again in 1000ms 11:00:47.191 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I show you how to build lightweight, strong upper cabinets for your camper van conversion. This simple design is perfect for DIY builders. I’ll walk you through every step, from framing to finish, and share tips to make sure your cabinets are sturdy, safe, and space-efficient. If you want a clean, professional look without the stress, this cabinet design is for you. Plans available if you want to follow along!\n\nPart two covering the doors, hinges, and latch installation can be found here:\nhttps://youtu.be/lZxcJ2V7m8o\n\nDownloadable cabinet build plans available here: \nhttps://www.mosermakes.com/articles/campervan-uppercabinet\n\nUseful Tools!\nCompass and Scriber: https://amzn.to/3Qf5Cpz\nCabinet jacks (install support stands): https://amzn.to/3Qnhg1K\nPocket hole jig: https://amzn.to/4jZDXGX\nPocket hole covers: https://amzn.to/4k3rhP9\n(Amazon links are affiliate links which I earn a small commission from - thanks for your support!)\n\nChapters:\n00:00 Overview\n04:31 Template vertical pieces\n07:26 Cutout pieces\n09:35 Assembly\n12:35 Mounting\n\n#diycamper #vanlife #vanconversion", "duration" => 1096, "filename" => "/downloads/Vanlife/2025-02-12 My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans)/My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans) [h3rZpJy5zbo].mkv", "id" => "h3rZpJy5zbo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=h3rZpJy5zbo", "playlist_index" => 81, "timestamp" => 1739372454, "title" => "My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans)", "upload_date" => "20250212"} 11:00:47.192 [debug] QUERY OK source="sources" db=0.6ms idle=637.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:00:47.193 [debug] QUERY OK source="sources" db=0.1ms idle=638.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:47.193 [debug] QUERY OK source="media_items" db=0.4ms idle=638.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-12 15:00:54Z], 10] 11:00:47.211 [debug] QUERY OK source="media_items" db=16.9ms idle=639.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show you how to build lightweight, strong upper cabinets for your camper van conversion. This simple design is perfect for DIY builders. I’ll walk you through every step, from framing to finish, and share tips to make sure your cabinets are sturdy, safe, and space-efficient. If you want a clean, professional look without the stress, this cabinet design is for you. Plans available if you want to follow along!\n\nPart two covering the doors, hinges, and latch installation can be found here:\nhttps://youtu.be/lZxcJ2V7m8o\n\nDownloadable cabinet build plans available here: \nhttps://www.mosermakes.com/articles/campervan-uppercabinet\n\nUseful Tools!\nCompass and Scriber: https://amzn.to/3Qf5Cpz\nCabinet jacks (install support stands): https://amzn.to/3Qnhg1K\nPocket hole jig: https://amzn.to/4jZDXGX\nPocket hole covers: https://amzn.to/4k3rhP9\n(Amazon links are affiliate links which I earn a small commission from - thanks for your support!)\n\nChapters:\n00:00 Overview\n04:31 Template vertical pieces\n07:26 Cutout pieces\n09:35 Assembly\n12:35 Mounting\n\n#diycamper #vanlife #vanconversion", "My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans)", "c6d9aade-28bc-4cfb-bfb5-a03f60295876", 10, [], 1096, false, "h3rZpJy5zbo", "https://www.youtube.com/watch?v=h3rZpJy5zbo", 81, "/downloads/Vanlife/2025-02-12 My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans)/My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans) [h3rZpJy5zbo].mkv", false, false, false, 1, ~U[2025-02-12 15:00:54Z], ~U[2026-07-11 15:00:47Z], ~U[2026-07-11 15:00:47Z], "In this video, I show you how to build lightweight, strong upper cabinets for your camper van conversion. This simple design is perfect for DIY builders. I’ll walk you through every step, from framing to finish, and share tips to make sure your cabinets are sturdy, safe, and space-efficient. If you want a clean, professional look without the stress, this cabinet design is for you. Plans available if you want to follow along!\n\nPart two covering the doors, hinges, and latch installation can be found here:\nhttps://youtu.be/lZxcJ2V7m8o\n\nDownloadable cabinet build plans available here: \nhttps://www.mosermakes.com/articles/campervan-uppercabinet\n\nUseful Tools!\nCompass and Scriber: https://amzn.to/3Qf5Cpz\nCabinet jacks (install support stands): https://amzn.to/3Qnhg1K\nPocket hole jig: https://amzn.to/4jZDXGX\nPocket hole covers: https://amzn.to/4k3rhP9\n(Amazon links are affiliate links which I earn a small commission from - thanks for your support!)\n\nChapters:\n00:00 Overview\n04:31 Template vertical pieces\n07:26 Cutout pieces\n09:35 Assembly\n12:35 Mounting\n\n#diycamper #vanlife #vanconversion", "My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans)", 10, 1096, false, "h3rZpJy5zbo", "https://www.youtube.com/watch?v=h3rZpJy5zbo", "/downloads/Vanlife/2025-02-12 My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans)/My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans) [h3rZpJy5zbo].mkv", false, ~U[2025-02-12 15:00:54Z]] 11:00:47.211 [debug] QUERY OK source="sources" db=0.2ms idle=339.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:47.211 [debug] QUERY OK source="media_profiles" db=0.1ms idle=18.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:00:47.212 [debug] QUERY OK source="media_items" db=0.2ms idle=18.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10237] 11:00:47.212 [debug] Current batch of media processed. Will check again in 1000ms 11:00:48.213 [debug] Current batch of media processed. Will check again in 1000ms 11:00:49.214 [debug] Current batch of media processed. Will check again in 1000ms 11:00:50.215 [debug] Current batch of media processed. Will check again in 1000ms 11:00:51.216 [debug] Current batch of media processed. Will check again in 1000ms 11:00:52.218 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "This video will teach you how to build a 'kitchen' cabinet for a DIY camper van conversion with a sink, an induction stove top, and drawers for storage.\n\nIn this van kitchen build, we were able to construct the cabinets outside of the van, install the sink, stove top, and fridge, all on our workbench before moving the entire DIY campervan kitchen into place. We secured our kitchen cabinet to the van using the L-track on the walls and on the floors. We are so happy with how this kitchen build turned out and even found some creative solutions for extra storage around our sink drain! \n\n➤Fridge: https://sovrn.co/1nwiv02\n➤Sink: https://amzn.to/40yFwS9\n➤Stove: https://amzn.to/3KsmxDg\n➤Plans: https://shop.explorist.life/shop/all-products/plans-and-diagrams/3d-files-project-templates/camper-van-cabinetry-plans-full-set/\n\n➤Shop the EXPLORIST.life Store: shop.explorist.life\n➤Shop Battle Born Batteries: http://battlebornbatteries.com?afmc=explorist_bb67\n➤Binge the Transit Van Build: https://www.youtube.com/playlist?list=PLmvhcyi4n0TVfA4XCYJBkzfUXunSON1zX\n\nHere are some additional resources that you may find helpful with planning and installing your DIY Camper:\n\n➤DIY Sprinter Camper Van Electrical Install - Full Tutorial: https://www.youtube.com/watch?v=01F4QDVJUq0&t=1897s\n➤DIY Camper Solar Wiring Diagrams: https://www.explorist.life/solarwiringdiagrams\n➤How to Perform a Power Audit: https://www.youtube.com/watch?v=a406IxiU-Xg&list=PLmvhcyi4n0TU6HlMaQiCUwC20DBlyv6s_&index=3\n➤Basic Parts & Components of an Electrical System: https://www.youtube.com/watch?v=xuZg4NasCVw&list=PLmvhcyi4n0TU6HlMaQiCUwC20DBlyv6s_&index=1\n➤How to Cut Wire: https://www.explorist.life/how-to-cut-wire/\n➤How to Strip Wire: https://www.youtube.com/watch?v=ca45dL2X4SM&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=10\n➤How to Crimp Wire: https://www.youtube.com/watch?v=JmiX2XW48F8&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=9\n➤How to Make MC4 Connectors: https://www.youtube.com/watch?v=YFAKK491wj0&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=7\n➤How to Wire Solar Panels in Series-Parallel: https://www.youtube.com/watch?v=b2H8vpj8rQg&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=3\n➤How to Crimp Wire Ferrules: https://www.youtube.com/watch?v=h8CHAVmpPFw&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=8\n➤How to Wire an AC/DC Breaker/Fuse Box: https://www.explorist.life/how-to-wire-a-power-distribution-panel/\n00:00 Introduction\n00:10 Cutting/Assembly\n01:31 Edge Banding/Finishing\n01:53 Drawers\n03:22 Latches\n04:12 Under Cabinet Lighting\n05:27 Back Panel/Door\n06:13 Refrigerator Vent\n06:26 Butcher Block Countertop\n07:04 Drain Install, Sink Assembly\n07:33 Brackets\n07:52 Extend Refrigerator Wires\n08:15 120V Outlet\n08:48 Attach Sink\n09:04 Attach Countertop\n09:30 Fasten to L Track\n09:41 Install Induction Cooktop/Complete Wiring\n10:30 Install Grey Water Tank\n10:42 Outro", "duration" => 680, "filename" => "/downloads/Vanlife/2023-04-02 DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces/DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces [zNpmj3ChmJ8].mkv", "id" => "zNpmj3ChmJ8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zNpmj3ChmJ8", "playlist_index" => 82, "timestamp" => 1680433242, "title" => "DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces", "upload_date" => "20230402"} 11:00:52.218 [debug] QUERY OK source="sources" db=0.1ms idle=1663.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:00:52.218 [debug] QUERY OK source="sources" db=0.1ms idle=1664.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:52.219 [debug] QUERY OK source="media_items" db=0.4ms idle=1664.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-02 11:00:42Z], 10] 11:00:52.227 [debug] QUERY OK source="media_items" db=7.9ms idle=1342.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This video will teach you how to build a 'kitchen' cabinet for a DIY camper van conversion with a sink, an induction stove top, and drawers for storage.\n\nIn this van kitchen build, we were able to construct the cabinets outside of the van, install the sink, stove top, and fridge, all on our workbench before moving the entire DIY campervan kitchen into place. We secured our kitchen cabinet to the van using the L-track on the walls and on the floors. We are so happy with how this kitchen build turned out and even found some creative solutions for extra storage around our sink drain! \n\n➤Fridge: https://sovrn.co/1nwiv02\n➤Sink: https://amzn.to/40yFwS9\n➤Stove: https://amzn.to/3KsmxDg\n➤Plans: https://shop.explorist.life/shop/all-products/plans-and-diagrams/3d-files-project-templates/camper-van-cabinetry-plans-full-set/\n\n➤Shop the EXPLORIST.life Store: shop.explorist.life\n➤Shop Battle Born Batteries: http://battlebornbatteries.com?afmc=explorist_bb67\n➤Binge the Transit Van Build: https://www.youtube.com/playlist?list=PLmvhcyi4n0TVfA4XCYJBkzfUXunSON1zX\n\nHere are some additional resources that you may find helpful with planning and installing your DIY Camper:\n\n➤DIY Sprinter Camper Van Electrical Install - Full Tutorial: https://www.youtube.com/watch?v=01F4QDVJUq0&t=1897s\n➤DIY Camper Solar Wiring Diagrams: https://www.explorist.life/solarwiringdiagrams\n➤How to Perform a Power Audit: https://www.youtube.com/watch?v=a406IxiU-Xg&list=PLmvhcyi4n0TU6HlMaQiCUwC20DBlyv6s_&index=3\n➤Basic Parts & Components of an Electrical System: https://www.youtube.com/watch?v=xuZg4NasCVw&list=PLmvhcyi4n0TU6HlMaQiCUwC20DBlyv6s_&index=1\n➤How to Cut Wire: https://www.explorist.life/how-to-cut-wire/\n➤How to Strip Wire: https://www.youtube.com/watch?v=ca45dL2X4SM&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=10\n➤How to Crimp Wire: https://www.youtube.com/watch?v=JmiX2XW48F8&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=9\n➤How to Make MC4 Connectors: https://www.youtube.com/watch?v=YFAKK491wj0&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=7\n➤How to Wire Solar Panels in Series-Parallel: https://www.youtube.com/watch?v=b2H8vpj8rQg&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=3\n➤How to Crimp Wire Ferrules: https://www.youtube.com/watch?v=h8CHAVmpPFw&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=8\n➤How to Wire an AC/DC Breaker/Fuse Box: https://www.explorist.life/how-to-wire-a-power-distribution-panel/\n00:00 Introduction\n00:10 Cutting/Assembly\n01:31 Edge Banding/Finishing\n01:53 Drawers\n03:22 Latches\n04:12 Under Cabinet Lighting\n05:27 Back Panel/Door\n06:13 Refrigerator Vent\n06:26 Butcher Block Countertop\n07:04 Drain Install, Sink Assembly\n07:33 Brackets\n07:52 Extend Refrigerator Wires\n08:15 120V Outlet\n08:48 Attach Sink\n09:04 Attach Countertop\n09:30 Fasten to L Track\n09:41 Install Induction Cooktop/Complete Wiring\n10:30 Install Grey Water Tank\n10:42 Outro", "DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces", "804b1173-0c5b-4654-8e77-72fa65dbb2e3", 10, [], 680, false, "zNpmj3ChmJ8", "https://www.youtube.com/watch?v=zNpmj3ChmJ8", 82, "/downloads/Vanlife/2023-04-02 DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces/DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces [zNpmj3ChmJ8].mkv", false, false, false, 1, ~U[2023-04-02 11:00:42Z], ~U[2026-07-11 15:00:52Z], ~U[2026-07-11 15:00:52Z], "This video will teach you how to build a 'kitchen' cabinet for a DIY camper van conversion with a sink, an induction stove top, and drawers for storage.\n\nIn this van kitchen build, we were able to construct the cabinets outside of the van, install the sink, stove top, and fridge, all on our workbench before moving the entire DIY campervan kitchen into place. We secured our kitchen cabinet to the van using the L-track on the walls and on the floors. We are so happy with how this kitchen build turned out and even found some creative solutions for extra storage around our sink drain! \n\n➤Fridge: https://sovrn.co/1nwiv02\n➤Sink: https://amzn.to/40yFwS9\n➤Stove: https://amzn.to/3KsmxDg\n➤Plans: https://shop.explorist.life/shop/all-products/plans-and-diagrams/3d-files-project-templates/camper-van-cabinetry-plans-full-set/\n\n➤Shop the EXPLORIST.life Store: shop.explorist.life\n➤Shop Battle Born Batteries: http://battlebornbatteries.com?afmc=explorist_bb67\n➤Binge the Transit Van Build: https://www.youtube.com/playlist?list=PLmvhcyi4n0TVfA4XCYJBkzfUXunSON1zX\n\nHere are some additional resources that you may find helpful with planning and installing your DIY Camper:\n\n➤DIY Sprinter Camper Van Electrical Install - Full Tutorial: https://www.youtube.com/watch?v=01F4QDVJUq0&t=1897s\n➤DIY Camper Solar Wiring Diagrams: https://www.explorist.life/solarwiringdiagrams\n➤How to Perform a Power Audit: https://www.youtube.com/watch?v=a406IxiU-Xg&list=PLmvhcyi4n0TU6HlMaQiCUwC20DBlyv6s_&index=3\n➤Basic Parts & Components of an Electrical System: https://www.youtube.com/watch?v=xuZg4NasCVw&list=PLmvhcyi4n0TU6HlMaQiCUwC20DBlyv6s_&index=1\n➤How to Cut Wire: https://www.explorist.life/how-to-cut-wire/\n➤How to Strip Wire: https://www.youtube.com/watch?v=ca45dL2X4SM&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=10\n➤How to Crimp Wire: https://www.youtube.com/watch?v=JmiX2XW48F8&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=9\n➤How to Make MC4 Connectors: https://www.youtube.com/watch?v=YFAKK491wj0&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=7\n➤How to Wire Solar Panels in Series-Parallel: https://www.youtube.com/watch?v=b2H8vpj8rQg&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=3\n➤How to Crimp Wire Ferrules: https://www.youtube.com/watch?v=h8CHAVmpPFw&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=8\n➤How to Wire an AC/DC Breaker/Fuse Box: https://www.explorist.life/how-to-wire-a-power-distribution-panel/\n00:00 Introduction\n00:10 Cutting/Assembly\n01:31 Edge Banding/Finishing\n01:53 Drawers\n03:22 Latches\n04:12 Under Cabinet Lighting\n05:27 Back Panel/Door\n06:13 Refrigerator Vent\n06:26 Butcher Block Countertop\n07:04 Drain Install, Sink Assembly\n07:33 Brackets\n07:52 Extend Refrigerator Wires\n08:15 120V Outlet\n08:48 Attach Sink\n09:04 Attach Countertop\n09:30 Fasten to L Track\n09:41 Install Induction Cooktop/Complete Wiring\n10:30 Install Grey Water Tank\n10:42 Outro", "DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces", 10, 680, false, "zNpmj3ChmJ8", "https://www.youtube.com/watch?v=zNpmj3ChmJ8", "/downloads/Vanlife/2023-04-02 DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces/DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces [zNpmj3ChmJ8].mkv", false, ~U[2023-04-02 11:00:42Z]] 11:00:52.228 [debug] QUERY OK source="sources" db=0.2ms idle=349.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:52.228 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 11:00:52.228 [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 [10238] 11:00:52.228 [debug] Current batch of media processed. Will check again in 1000ms 11:00:53.229 [debug] Current batch of media processed. Will check again in 1000ms 11:00:54.230 [debug] Current batch of media processed. Will check again in 1000ms 11:00:55.231 [debug] Current batch of media processed. Will check again in 1000ms 11:00:56.232 [debug] Current batch of media processed. Will check again in 1000ms 11:00:57.233 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "📽️ WHAT TO WATCH NEXT\nHow to Build Base Cabinets - https://youtu.be/7KkvrgMk8Us\nHow to Build Wall Cabinets - https://youtu.be/SMQVklOfig4\nTall Pantry Storage Cabinet - https://youtu.be/zL4TgtY_Nrc\nKitchen Island Pt 1 - https://youtu.be/eiInNHG2QBg\nJason Bent's LR32 System Video - https://youtu.be/EO62T1LHdNA\n\n✅️ CABINET PROJECT PLANS: \nBase Cabinet Plans - https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinet Plans - https://mwawoodworks.com/product/upper-cabinet-plans/\nThree Drawer Base Cabinet Plans - https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nPantry Storage Cabinet Plans - https://mwawoodworks.com/product/tall-pantry-storage-cabinet-plans/\nKitchen Island Plans - https://mwawoodworks.com/product/kitchen-island-plans/\nThe Cabinet Plan Bundle (save 50%) : https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nThe Whole Enchilada Plan Bundle (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO:\n►Spectape Two Sided Tape - https://amzn.to/3IxTMma\n►True Position Cabinet Hardware Jig - https://amzn.to/3KDHjjK\n►Kreg Shelf Pin Jig (new model) - https://amzn.to/3kwugpG\n►Bangood Pocket Hole Jig - https://amzn.to/3Zonuki\n►Kreg Pocket Hole Jig (new model) - https://amzn.to/41qvovu\n►Castle TSM 12 Pocket Hole Cutter - https://castleusa.com/products/tsm-12-benchtop-pocket-cutter-machine.html\n►Festool LR32 System - https://amzn.to/3KxTmPw\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n---------------------------------------------------------------------------------------------------------------------------------------------\n\n⏱️ Chapters\n00:00 Intro\n00:30 Best Cabinet Plywood\n02:23 Drawer Slide Install Hack\n03:34 Two Sided Tape is KING\n04:35 Sizing Your Cabinets\n06:30 Using Relative Measurements\n09:23 Drawer Front Install Trick\n10:37 True Position Hardware Jig\n11:17 Pocket Holes Don't Suck\n12:48 Pocket Hole Jigs\n14:15 Sizing and Spacing Drawers\n15:26 Shelf Pin Jigs \n\nCabinet Making Secrets\n#cabinets#woodworkingproject#diyprojects", "duration" => 888, "filename" => "/downloads/Vanlife/2023-02-26 10 Tips and Tools for Building Better Cabinets/10 Tips and Tools for Building Better Cabinets [Vey9ZclCFMI].mp4", "id" => "Vey9ZclCFMI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Vey9ZclCFMI", "playlist_index" => 83, "timestamp" => 1677427621, "title" => "10 Tips and Tools for Building Better Cabinets", "upload_date" => "20230226"} 11:00:57.234 [debug] QUERY OK source="sources" db=0.1ms idle=1679.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:00:57.234 [debug] QUERY OK source="sources" db=0.0ms idle=1679.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:57.234 [debug] QUERY OK source="media_items" db=0.4ms idle=1679.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-26 16:07:01Z], 10] 11:00:57.236 [debug] QUERY OK source="media_items" db=1.1ms idle=1353.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📽️ WHAT TO WATCH NEXT\nHow to Build Base Cabinets - https://youtu.be/7KkvrgMk8Us\nHow to Build Wall Cabinets - https://youtu.be/SMQVklOfig4\nTall Pantry Storage Cabinet - https://youtu.be/zL4TgtY_Nrc\nKitchen Island Pt 1 - https://youtu.be/eiInNHG2QBg\nJason Bent's LR32 System Video - https://youtu.be/EO62T1LHdNA\n\n✅️ CABINET PROJECT PLANS: \nBase Cabinet Plans - https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinet Plans - https://mwawoodworks.com/product/upper-cabinet-plans/\nThree Drawer Base Cabinet Plans - https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nPantry Storage Cabinet Plans - https://mwawoodworks.com/product/tall-pantry-storage-cabinet-plans/\nKitchen Island Plans - https://mwawoodworks.com/product/kitchen-island-plans/\nThe Cabinet Plan Bundle (save 50%) : https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nThe Whole Enchilada Plan Bundle (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO:\n►Spectape Two Sided Tape - https://amzn.to/3IxTMma\n►True Position Cabinet Hardware Jig - https://amzn.to/3KDHjjK\n►Kreg Shelf Pin Jig (new model) - https://amzn.to/3kwugpG\n►Bangood Pocket Hole Jig - https://amzn.to/3Zonuki\n►Kreg Pocket Hole Jig (new model) - https://amzn.to/41qvovu\n►Castle TSM 12 Pocket Hole Cutter - https://castleusa.com/products/tsm-12-benchtop-pocket-cutter-machine.html\n►Festool LR32 System - https://amzn.to/3KxTmPw\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n---------------------------------------------------------------------------------------------------------------------------------------------\n\n⏱️ Chapters\n00:00 Intro\n00:30 Best Cabinet Plywood\n02:23 Drawer Slide Install Hack\n03:34 Two Sided Tape is KING\n04:35 Sizing Your Cabinets\n06:30 Using Relative Measurements\n09:23 Drawer Front Install Trick\n10:37 True Position Hardware Jig\n11:17 Pocket Holes Don't Suck\n12:48 Pocket Hole Jigs\n14:15 Sizing and Spacing Drawers\n15:26 Shelf Pin Jigs \n\nCabinet Making Secrets\n#cabinets#woodworkingproject#diyprojects", "10 Tips and Tools for Building Better Cabinets", "07a8d6be-a38d-48d1-aee6-0c622731fcad", 10, [], 888, false, "Vey9ZclCFMI", "https://www.youtube.com/watch?v=Vey9ZclCFMI", 83, "/downloads/Vanlife/2023-02-26 10 Tips and Tools for Building Better Cabinets/10 Tips and Tools for Building Better Cabinets [Vey9ZclCFMI].mp4", false, false, false, 1, ~U[2023-02-26 16:07:01Z], ~U[2026-07-11 15:00:57Z], ~U[2026-07-11 15:00:57Z], "📽️ WHAT TO WATCH NEXT\nHow to Build Base Cabinets - https://youtu.be/7KkvrgMk8Us\nHow to Build Wall Cabinets - https://youtu.be/SMQVklOfig4\nTall Pantry Storage Cabinet - https://youtu.be/zL4TgtY_Nrc\nKitchen Island Pt 1 - https://youtu.be/eiInNHG2QBg\nJason Bent's LR32 System Video - https://youtu.be/EO62T1LHdNA\n\n✅️ CABINET PROJECT PLANS: \nBase Cabinet Plans - https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinet Plans - https://mwawoodworks.com/product/upper-cabinet-plans/\nThree Drawer Base Cabinet Plans - https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nPantry Storage Cabinet Plans - https://mwawoodworks.com/product/tall-pantry-storage-cabinet-plans/\nKitchen Island Plans - https://mwawoodworks.com/product/kitchen-island-plans/\nThe Cabinet Plan Bundle (save 50%) : https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nThe Whole Enchilada Plan Bundle (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO:\n►Spectape Two Sided Tape - https://amzn.to/3IxTMma\n►True Position Cabinet Hardware Jig - https://amzn.to/3KDHjjK\n►Kreg Shelf Pin Jig (new model) - https://amzn.to/3kwugpG\n►Bangood Pocket Hole Jig - https://amzn.to/3Zonuki\n►Kreg Pocket Hole Jig (new model) - https://amzn.to/41qvovu\n►Castle TSM 12 Pocket Hole Cutter - https://castleusa.com/products/tsm-12-benchtop-pocket-cutter-machine.html\n►Festool LR32 System - https://amzn.to/3KxTmPw\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n---------------------------------------------------------------------------------------------------------------------------------------------\n\n⏱️ Chapters\n00:00 Intro\n00:30 Best Cabinet Plywood\n02:23 Drawer Slide Install Hack\n03:34 Two Sided Tape is KING\n04:35 Sizing Your Cabinets\n06:30 Using Relative Measurements\n09:23 Drawer Front Install Trick\n10:37 True Position Hardware Jig\n11:17 Pocket Holes Don't Suck\n12:48 Pocket Hole Jigs\n14:15 Sizing and Spacing Drawers\n15:26 Shelf Pin Jigs \n\nCabinet Making Secrets\n#cabinets#woodworkingproject#diyprojects", "10 Tips and Tools for Building Better Cabinets", 10, 888, false, "Vey9ZclCFMI", "https://www.youtube.com/watch?v=Vey9ZclCFMI", "/downloads/Vanlife/2023-02-26 10 Tips and Tools for Building Better Cabinets/10 Tips and Tools for Building Better Cabinets [Vey9ZclCFMI].mp4", false, ~U[2023-02-26 16:07:01Z]] 11:00:57.236 [debug] QUERY OK source="sources" db=0.2ms idle=353.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:00:57.237 [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] 11:00:57.237 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10240] 11:00:57.237 [debug] Current batch of media processed. Will check again in 1000ms 11:00:58.238 [debug] Current batch of media processed. Will check again in 1000ms 11:00:59.239 [debug] Current batch of media processed. Will check again in 1000ms 11:01:00.205 [info] {"source":"oban","duration":320,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:01:00.240 [debug] Current batch of media processed. Will check again in 1000ms 11:01:00.480 [info] {"source":"oban","duration":1286,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:01:01.241 [debug] Current batch of media processed. Will check again in 1000ms 11:01:02.242 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "This video is everything I know about building, sizing, spacing and installing drawers! \nWHAT NEXT?\n✅️Learn how to build cabinets - https://www.youtube.com/watch?v=7KkvrgMk8Us&list=PLTGU37t015kng61D5cjPei-26UFz6VXOx\n✅️Join my Patreon community - https://patreon.com/MWAWoodworks \n✅️ CABINET PROJECT PLANS\nCabinet Plan Bundle - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nBase Cabinets: https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinets - https://mwawoodworks.com/product/upper-cabinet-plans/ \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nTall Pantry Cabinet- https://mwawoodworks.com/product/tall-pantry-storage-cabinet/\nKitchen Island - https://mwawoodworks.com/product/kitchen-island/\nTall Storage Cabinet - https://mwawoodworks.com/product/tall-storage-cabinet/\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO\nJessEm Dowelling Jig - https://amzn.to/3XMxeFQ\nDovetail Jig - https://amzn.to/3YcteQN\nMy new favorite Pocket Hole Jig - https://amzn.to/46uqF0f\nBox Joint Jig - https://amzn.to/3N4tpHe\nMy favorite persuader (mallet) - https://amzn.to/3zApkrk\nLock Miter Router Bit - https://amzn.to/3N5o96s\nLock Miter Setup Jig - https://amzn.to/3ZHGUnW\nLocking Rabbet Router Bit - https://amzn.to/3N1Yrzo\nEuro glides - https://amzn.to/4eIrcNC\nSide mount Slides - https://amzn.to/3TLkoqi\nUnder mount Slides - https://amzn.to/3N1sffN\nDeWalt Cordless Palm Router - https://amzn.to/3zC8oR8 \nMilwaukee Detail Sander - https://amzn.to/3XYMjWm\nFestool Domino - https://amzn.to/4exVi6m\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use *Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n📽️ Referenced Videos\nHow to set up lock miter bits - https://www.youtube.com/watch?v=L_rJhz9C3wk\n\n✅️ Other Affiliate Partners \nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq \nTSO Products - https://tsoproducts.com/?ref=MWAWW \nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: https://patreon.com/MWAWoodworks \nGet Project Plans: https://bit.ly/download-project-plans \nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ MWA WOODWORKS ON SOCIAL \nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/\n\nHow to Build Drawers \n⏱️ Chapters\n00:00 Intro\n00:20 Drawer construction\n03:05 Joinery options\n10:58 Choosing the right slides\n15:04 Best way to install slides\n16:12 How to size drawers\n18:27 Proper drawer spacing\n\n\n#cabinets #diy #woodworkingproject", "duration" => 1204, "filename" => "/downloads/Vanlife/2024-09-29 I don't get why people think drawers are hard/I don't get why people think drawers are hard [igoUKsvQqfI].mkv", "id" => "igoUKsvQqfI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=igoUKsvQqfI", "playlist_index" => 84, "timestamp" => 1727620004, "title" => "I don't get why people think drawers are hard", "upload_date" => "20240929"} 11:01:02.243 [debug] QUERY OK source="sources" db=0.1ms idle=1688.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:01:02.243 [debug] QUERY OK source="sources" db=0.0ms idle=1355.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:02.243 [debug] QUERY OK source="media_items" db=0.3ms idle=688.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-29 14:26:44Z], 10] 11:01:02.245 [debug] QUERY OK source="media_items" db=1.1ms idle=689.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This video is everything I know about building, sizing, spacing and installing drawers! \nWHAT NEXT?\n✅️Learn how to build cabinets - https://www.youtube.com/watch?v=7KkvrgMk8Us&list=PLTGU37t015kng61D5cjPei-26UFz6VXOx\n✅️Join my Patreon community - https://patreon.com/MWAWoodworks \n✅️ CABINET PROJECT PLANS\nCabinet Plan Bundle - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nBase Cabinets: https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinets - https://mwawoodworks.com/product/upper-cabinet-plans/ \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nTall Pantry Cabinet- https://mwawoodworks.com/product/tall-pantry-storage-cabinet/\nKitchen Island - https://mwawoodworks.com/product/kitchen-island/\nTall Storage Cabinet - https://mwawoodworks.com/product/tall-storage-cabinet/\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO\nJessEm Dowelling Jig - https://amzn.to/3XMxeFQ\nDovetail Jig - https://amzn.to/3YcteQN\nMy new favorite Pocket Hole Jig - https://amzn.to/46uqF0f\nBox Joint Jig - https://amzn.to/3N4tpHe\nMy favorite persuader (mallet) - https://amzn.to/3zApkrk\nLock Miter Router Bit - https://amzn.to/3N5o96s\nLock Miter Setup Jig - https://amzn.to/3ZHGUnW\nLocking Rabbet Router Bit - https://amzn.to/3N1Yrzo\nEuro glides - https://amzn.to/4eIrcNC\nSide mount Slides - https://amzn.to/3TLkoqi\nUnder mount Slides - https://amzn.to/3N1sffN\nDeWalt Cordless Palm Router - https://amzn.to/3zC8oR8 \nMilwaukee Detail Sander - https://amzn.to/3XYMjWm\nFestool Domino - https://amzn.to/4exVi6m\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use *Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n📽️ Referenced Videos\nHow to set up lock miter bits - https://www.youtube.com/watch?v=L_rJhz9C3wk\n\n✅️ Other Affiliate Partners \nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq \nTSO Products - https://tsoproducts.com/?ref=MWAWW \nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: https://patreon.com/MWAWoodworks \nGet Project Plans: https://bit.ly/download-project-plans \nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ MWA WOODWORKS ON SOCIAL \nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/\n\nHow to Build Drawers \n⏱️ Chapters\n00:00 Intro\n00:20 Drawer construction\n03:05 Joinery options\n10:58 Choosing the right slides\n15:04 Best way to install slides\n16:12 How to size drawers\n18:27 Proper drawer spacing\n\n\n#cabinets #diy #woodworkingproject", "I don't get why people think drawers are hard", "74806f21-55d1-445a-8ef0-88fdaff8892b", 10, [], 1204, false, "igoUKsvQqfI", "https://www.youtube.com/watch?v=igoUKsvQqfI", 84, "/downloads/Vanlife/2024-09-29 I don't get why people think drawers are hard/I don't get why people think drawers are hard [igoUKsvQqfI].mkv", false, false, false, 1, ~U[2024-09-29 14:26:44Z], ~U[2026-07-11 15:01:02Z], ~U[2026-07-11 15:01:02Z], "This video is everything I know about building, sizing, spacing and installing drawers! \nWHAT NEXT?\n✅️Learn how to build cabinets - https://www.youtube.com/watch?v=7KkvrgMk8Us&list=PLTGU37t015kng61D5cjPei-26UFz6VXOx\n✅️Join my Patreon community - https://patreon.com/MWAWoodworks \n✅️ CABINET PROJECT PLANS\nCabinet Plan Bundle - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nBase Cabinets: https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinets - https://mwawoodworks.com/product/upper-cabinet-plans/ \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nTall Pantry Cabinet- https://mwawoodworks.com/product/tall-pantry-storage-cabinet/\nKitchen Island - https://mwawoodworks.com/product/kitchen-island/\nTall Storage Cabinet - https://mwawoodworks.com/product/tall-storage-cabinet/\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO\nJessEm Dowelling Jig - https://amzn.to/3XMxeFQ\nDovetail Jig - https://amzn.to/3YcteQN\nMy new favorite Pocket Hole Jig - https://amzn.to/46uqF0f\nBox Joint Jig - https://amzn.to/3N4tpHe\nMy favorite persuader (mallet) - https://amzn.to/3zApkrk\nLock Miter Router Bit - https://amzn.to/3N5o96s\nLock Miter Setup Jig - https://amzn.to/3ZHGUnW\nLocking Rabbet Router Bit - https://amzn.to/3N1Yrzo\nEuro glides - https://amzn.to/4eIrcNC\nSide mount Slides - https://amzn.to/3TLkoqi\nUnder mount Slides - https://amzn.to/3N1sffN\nDeWalt Cordless Palm Router - https://amzn.to/3zC8oR8 \nMilwaukee Detail Sander - https://amzn.to/3XYMjWm\nFestool Domino - https://amzn.to/4exVi6m\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use *Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n📽️ Referenced Videos\nHow to set up lock miter bits - https://www.youtube.com/watch?v=L_rJhz9C3wk\n\n✅️ Other Affiliate Partners \nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq \nTSO Products - https://tsoproducts.com/?ref=MWAWW \nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: https://patreon.com/MWAWoodworks \nGet Project Plans: https://bit.ly/download-project-plans \nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ MWA WOODWORKS ON SOCIAL \nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/\n\nHow to Build Drawers \n⏱️ Chapters\n00:00 Intro\n00:20 Drawer construction\n03:05 Joinery options\n10:58 Choosing the right slides\n15:04 Best way to install slides\n16:12 How to size drawers\n18:27 Proper drawer spacing\n\n\n#cabinets #diy #woodworkingproject", "I don't get why people think drawers are hard", 10, 1204, false, "igoUKsvQqfI", "https://www.youtube.com/watch?v=igoUKsvQqfI", "/downloads/Vanlife/2024-09-29 I don't get why people think drawers are hard/I don't get why people think drawers are hard [igoUKsvQqfI].mkv", false, ~U[2024-09-29 14:26:44Z]] 11:01:02.245 [debug] QUERY OK source="sources" db=0.1ms idle=356.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:02.246 [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] 11:01:02.246 [debug] QUERY OK source="media_items" db=0.2ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10242] 11:01:02.246 [debug] Current batch of media processed. Will check again in 1000ms 11:01:03.247 [debug] Current batch of media processed. Will check again in 1000ms 11:01:04.248 [debug] Current batch of media processed. Will check again in 1000ms 11:01:05.249 [debug] Current batch of media processed. Will check again in 1000ms 11:01:06.250 [debug] Current batch of media processed. Will check again in 1000ms 11:01:07.251 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "✅️ TOOLS AND SUPPLIES IN THIS VIDEO:\nCentipede Work Holder - https://bit.ly/bora-centipede\nPlywood Router Bit Set - https://amzn.to/3sj7lxn\nSpectape Two Sided Tape - https://amzn.to/3wleKh4\nTrue Position Tools Cabinet Hardware Jig - https://amzn.to/3g3pgDr\nKreg Pocket Hole Jig - https://amzn.to/2UgpEGU\nMag Switch - https://amzn.to/3sg6M7H\nBessey One Handed Clamps - https://amzn.to/2VWftbp\nSpeed Square - https://amzn.to/3xHGwEl\nFast Setting Wood Glue - https://amzn.to/2VNIaaF\nSet Up Blocks - https://amzn.to/3GsT8U3\nUndermount Drawer Slides - https://amzn.to/3lOkUm6\n\n📽️ WHAT TO WATCH NEXT\nMy Secrets for Cabinet Building - https://youtu.be/Vey9ZclCFMI \nBuilding Upper Cabinets - https://youtu.be/SMQVklOfig4\nHUGE Pantry Cabinets with Pull Out Trays - https://youtu.be/zL4TgtY_Nrc\n\n✅️ GET THE PROJECT PLANS: \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nCabinet Plan Bundle (Save 33%) - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nAll Project Plans Bundled (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n---------------------------------------------------------------------------------------------------------------------------------------------\nCabinets For Storing Larger Items\nLearn how to build a cabinet from start to finish\n\n⏱️ Chapters\n00:00 Intro\n00:28 Cutting Cabinet Parts\n03:13 Assembling a Cabinet Carcass\n06:00 How to Make Drawers\n07:56 How to Make Drawer Fronts\n09:10 How to Make Face Frames\n09:59 Tips For Undermount Drawer Slides\n11:40 Tips For Installing Drawer Fronts\n\n#cabinets#carpentry#woodworking", "duration" => 678, "filename" => "/downloads/Vanlife/2022-05-29 I can't believe building custom cabinets was this easy/I can't believe building custom cabinets was this easy [XtfoThdGU2w].mp4", "id" => "XtfoThdGU2w", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XtfoThdGU2w", "playlist_index" => 85, "timestamp" => 1653838643, "title" => "I can't believe building custom cabinets was this easy", "upload_date" => "20220529"} 11:01:07.252 [debug] QUERY OK source="sources" db=0.1ms idle=1697.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:01:07.252 [debug] QUERY OK source="sources" db=0.1ms idle=1697.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:07.252 [debug] QUERY OK source="media_items" db=0.4ms idle=1697.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-05-29 15:37:23Z], 10] 11:01:07.254 [debug] QUERY OK source="media_items" db=1.1ms idle=1358.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅️ TOOLS AND SUPPLIES IN THIS VIDEO:\nCentipede Work Holder - https://bit.ly/bora-centipede\nPlywood Router Bit Set - https://amzn.to/3sj7lxn\nSpectape Two Sided Tape - https://amzn.to/3wleKh4\nTrue Position Tools Cabinet Hardware Jig - https://amzn.to/3g3pgDr\nKreg Pocket Hole Jig - https://amzn.to/2UgpEGU\nMag Switch - https://amzn.to/3sg6M7H\nBessey One Handed Clamps - https://amzn.to/2VWftbp\nSpeed Square - https://amzn.to/3xHGwEl\nFast Setting Wood Glue - https://amzn.to/2VNIaaF\nSet Up Blocks - https://amzn.to/3GsT8U3\nUndermount Drawer Slides - https://amzn.to/3lOkUm6\n\n📽️ WHAT TO WATCH NEXT\nMy Secrets for Cabinet Building - https://youtu.be/Vey9ZclCFMI \nBuilding Upper Cabinets - https://youtu.be/SMQVklOfig4\nHUGE Pantry Cabinets with Pull Out Trays - https://youtu.be/zL4TgtY_Nrc\n\n✅️ GET THE PROJECT PLANS: \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nCabinet Plan Bundle (Save 33%) - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nAll Project Plans Bundled (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n---------------------------------------------------------------------------------------------------------------------------------------------\nCabinets For Storing Larger Items\nLearn how to build a cabinet from start to finish\n\n⏱️ Chapters\n00:00 Intro\n00:28 Cutting Cabinet Parts\n03:13 Assembling a Cabinet Carcass\n06:00 How to Make Drawers\n07:56 How to Make Drawer Fronts\n09:10 How to Make Face Frames\n09:59 Tips For Undermount Drawer Slides\n11:40 Tips For Installing Drawer Fronts\n\n#cabinets#carpentry#woodworking", "I can't believe building custom cabinets was this easy", "ab3196aa-39f4-4b24-a70b-7395b223b380", 10, [], 678, false, "XtfoThdGU2w", "https://www.youtube.com/watch?v=XtfoThdGU2w", 85, "/downloads/Vanlife/2022-05-29 I can't believe building custom cabinets was this easy/I can't believe building custom cabinets was this easy [XtfoThdGU2w].mp4", false, false, false, 1, ~U[2022-05-29 15:37:23Z], ~U[2026-07-11 15:01:07Z], ~U[2026-07-11 15:01:07Z], "✅️ TOOLS AND SUPPLIES IN THIS VIDEO:\nCentipede Work Holder - https://bit.ly/bora-centipede\nPlywood Router Bit Set - https://amzn.to/3sj7lxn\nSpectape Two Sided Tape - https://amzn.to/3wleKh4\nTrue Position Tools Cabinet Hardware Jig - https://amzn.to/3g3pgDr\nKreg Pocket Hole Jig - https://amzn.to/2UgpEGU\nMag Switch - https://amzn.to/3sg6M7H\nBessey One Handed Clamps - https://amzn.to/2VWftbp\nSpeed Square - https://amzn.to/3xHGwEl\nFast Setting Wood Glue - https://amzn.to/2VNIaaF\nSet Up Blocks - https://amzn.to/3GsT8U3\nUndermount Drawer Slides - https://amzn.to/3lOkUm6\n\n📽️ WHAT TO WATCH NEXT\nMy Secrets for Cabinet Building - https://youtu.be/Vey9ZclCFMI \nBuilding Upper Cabinets - https://youtu.be/SMQVklOfig4\nHUGE Pantry Cabinets with Pull Out Trays - https://youtu.be/zL4TgtY_Nrc\n\n✅️ GET THE PROJECT PLANS: \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nCabinet Plan Bundle (Save 33%) - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nAll Project Plans Bundled (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n---------------------------------------------------------------------------------------------------------------------------------------------\nCabinets For Storing Larger Items\nLearn how to build a cabinet from start to finish\n\n⏱️ Chapters\n00:00 Intro\n00:28 Cutting Cabinet Parts\n03:13 Assembling a Cabinet Carcass\n06:00 How to Make Drawers\n07:56 How to Make Drawer Fronts\n09:10 How to Make Face Frames\n09:59 Tips For Undermount Drawer Slides\n11:40 Tips For Installing Drawer Fronts\n\n#cabinets#carpentry#woodworking", "I can't believe building custom cabinets was this easy", 10, 678, false, "XtfoThdGU2w", "https://www.youtube.com/watch?v=XtfoThdGU2w", "/downloads/Vanlife/2022-05-29 I can't believe building custom cabinets was this easy/I can't believe building custom cabinets was this easy [XtfoThdGU2w].mp4", false, ~U[2022-05-29 15:37:23Z]] 11:01:07.254 [debug] QUERY OK source="sources" db=0.1ms idle=358.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:07.255 [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] 11:01:07.255 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10244] 11:01:07.255 [debug] Current batch of media processed. Will check again in 1000ms 11:01:08.256 [debug] Current batch of media processed. Will check again in 1000ms 11:01:09.257 [debug] Current batch of media processed. Will check again in 1000ms 11:01:10.258 [debug] Current batch of media processed. Will check again in 1000ms 11:01:11.259 [debug] Current batch of media processed. Will check again in 1000ms 11:01:12.260 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I get a lot of questions about cabinet and carcass construction and in this series I aim to answer them all, starting here with the most asked question of all; on a wall-hung cabinet, should the top and base sit within or above, the sides?\n\nNote that this video series is all about wall cabinets; see the Base Cabinet Basics series for details on those - https://youtu.be/XQNeiPvEQ1I\n\n\n+++++++++\n\nBecome a 10minuteworkshop Plus member - more details at 10minuteworkshop.com, sign up directly at 10minuteworkshop.plus\n\n**Support 10 Minute Workshop as a YouTube Member** http://bit.ly/10minuteMember\n\n**Support 10 Minute Workshop on Patreon** - http://www.patreon.com/10minuteworkshop\n\n**Please note that I am moving away from the legacy member platforms to concentrate on my own memberships at 10MinuteWorkshop Plus; member benefits at Patreon and YTM will be significantly reduced from October 2022.\n\nSupport the channel directly - http://bit.ly/donate_to_10minuteworkshop\n\n+++++++++\n\nIf you’re looking for a few gift ideas and would like to support the channel then take a look at my Etsy store, my Amazon Affiliate store, or any of the links below.\n\nMy Etsy - http://bit.ly/10minuteShop\n\nAmazon store - http://bit.ly/10minuteworkshop\n\nMy ‘social’ links & contacts in one place - https://www.10minuteworkshop.com/links\n\nFull list of ‘Stuff I use’ at Full list of ‘Stuff I use’ at https://www.10minuteworkshop.com\n\nConnect with me on twitter @10minuteshop\n\nConnect with me on Instagram @10minuteworkshop\n\n+++++++\n\nAs an Amazon Associate, I earn from qualifying purchases made through these links.\n\nWherever possible links are to actual products used, but this is not always possible e.g. some products are not available in the US, so something [similar] has been linked to instead.\n\nAmazon UK - https://www.amazon.co.uk/shop/petermillard1\n\n++++++++\n\nMentioned in this video:-\n\nPlastic packers or 'shims' - http://amzn.to/2vCDN27 (US:http://amzn.to/2vHk4fZ)\n\nPeanut 2 connector system - http://shop.intelligentfixings.com?ref=10minuteworkshop\n\nButtonfix - https://amzn.to/2JIXa35 (US: http://bit.ly/buttonfix_US)\n\nBenchdogs Rail Dogs - http://bit.ly/raildogs\n\nTrend MFT router jig - https://amzn.to/34wSp3b\n\nBenchdogs rail square - https://bit.ly/bench-dogs\n\nFestool TS55 Tracksaw - http://amzn.to/2pGvzDS (US: http://amzn.to/2oOgGhw)\n\nFestool Midi extractor - http://amzn.to/2tCIN3Q (US: http://amzn.to/2rKNIOx)\n\nBessey Duo Klamp - http://amzn.to/2tsSWQs (US:http://amzn.to/2sVaRBH)\n\nHultafors Talmeter tape measure - http://amzn.to/2pHwnbH (US: http://amzn.to/2oqLQc9)\n\nMoldex 6810 in-ear defenders - https://amzn.to/2P2c5nP (US:https://amzn.to/2LgIsye)\n\nMirock square - https://etsy.me/2MC0RT\n\n++++++++\n\nOther useful gear…\n\nFestool MFT - https://amzn.to/2x49HHE (US: https://amzn.to/2J25aKy)\n\nFestool PDC 18/4 - http://amzn.to/2s3J0eq (US: http://amzn.to/2tWUHEL)\n\nFestool Granat abrasive - http://amzn.to/2A3c1vW (US: http://amzn.to/2gPAAUz)\n\nFestool RTS 400 - http://amzn.to/2x6zGZW (US: http://amzn.to/2i84yXn)\n\nSpax screws - http://amzn.to/2oYWydc (US: http://amzn.to/2oOjkDT)\n\nFestool ETS 150/5 - http://amzn.to/2sapsq9 (US: http://amzn.to/2ssbZgq)\n\nFestool CTL Sys - http://amzn.to/2sKa2t3 (US: http://amzn.to/2tCvVdZ)\n\nFestool CTL SYS Bags - https://amzn.to/2G9eFVd (US: https://amzn.to/2GduBpo)\n\nTrend Air Stealth Facemask - https://amzn.to/2zah0P6 (US: https://amzn.to/2T5ww6X)\n\nBahco 6” combi square - http://amzn.to/2oumhX4 (US: http://amzn.to/2ouSg9k)\n\nSilicone brush set - http://amzn.to/2guo6Sm (US: http://amzn.to/2yEWbZI)\n\nSilicone brush (single) - http://amzn.to/2l5rNTD (US: http://amzn.to/2zqFaQl)\n\nPolyvine PolyTen PVA - http://amzn.to/2svT03N (US: http://amzn.to/2rmHYL3)", "duration" => 499, "filename" => "/downloads/Vanlife/2021-01-15 Cabinetry Basics Part 1 [video 435]/Cabinetry Basics Part 1 [video 435] [3N_T-YpkBCg].mkv", "id" => "3N_T-YpkBCg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3N_T-YpkBCg", "playlist_index" => 86, "timestamp" => 1610712003, "title" => "Cabinetry Basics Part 1 [video 435]", "upload_date" => "20210115"} 11:01:12.261 [debug] QUERY OK source="sources" db=0.1ms idle=1706.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:01:12.261 [debug] QUERY OK source="sources" db=0.1ms idle=1706.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:12.262 [debug] QUERY OK source="media_items" db=0.4ms idle=1707.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-01-15 12:00:03Z], 10] 11:01:12.263 [debug] QUERY OK source="media_items" db=1.2ms idle=1362.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I get a lot of questions about cabinet and carcass construction and in this series I aim to answer them all, starting here with the most asked question of all; on a wall-hung cabinet, should the top and base sit within or above, the sides?\n\nNote that this video series is all about wall cabinets; see the Base Cabinet Basics series for details on those - https://youtu.be/XQNeiPvEQ1I\n\n\n+++++++++\n\nBecome a 10minuteworkshop Plus member - more details at 10minuteworkshop.com, sign up directly at 10minuteworkshop.plus\n\n**Support 10 Minute Workshop as a YouTube Member** http://bit.ly/10minuteMember\n\n**Support 10 Minute Workshop on Patreon** - http://www.patreon.com/10minuteworkshop\n\n**Please note that I am moving away from the legacy member platforms to concentrate on my own memberships at 10MinuteWorkshop Plus; member benefits at Patreon and YTM will be significantly reduced from October 2022.\n\nSupport the channel directly - http://bit.ly/donate_to_10minuteworkshop\n\n+++++++++\n\nIf you’re looking for a few gift ideas and would like to support the channel then take a look at my Etsy store, my Amazon Affiliate store, or any of the links below.\n\nMy Etsy - http://bit.ly/10minuteShop\n\nAmazon store - http://bit.ly/10minuteworkshop\n\nMy ‘social’ links & contacts in one place - https://www.10minuteworkshop.com/links\n\nFull list of ‘Stuff I use’ at Full list of ‘Stuff I use’ at https://www.10minuteworkshop.com\n\nConnect with me on twitter @10minuteshop\n\nConnect with me on Instagram @10minuteworkshop\n\n+++++++\n\nAs an Amazon Associate, I earn from qualifying purchases made through these links.\n\nWherever possible links are to actual products used, but this is not always possible e.g. some products are not available in the US, so something [similar] has been linked to instead.\n\nAmazon UK - https://www.amazon.co.uk/shop/petermillard1\n\n++++++++\n\nMentioned in this video:-\n\nPlastic packers or 'shims' - http://amzn.to/2vCDN27 (US:http://amzn.to/2vHk4fZ)\n\nPeanut 2 connector system - http://shop.intelligentfixings.com?ref=10minuteworkshop\n\nButtonfix - https://amzn.to/2JIXa35 (US: http://bit.ly/buttonfix_US)\n\nBenchdogs Rail Dogs - http://bit.ly/raildogs\n\nTrend MFT router jig - https://amzn.to/34wSp3b\n\nBenchdogs rail square - https://bit.ly/bench-dogs\n\nFestool TS55 Tracksaw - http://amzn.to/2pGvzDS (US: http://amzn.to/2oOgGhw)\n\nFestool Midi extractor - http://amzn.to/2tCIN3Q (US: http://amzn.to/2rKNIOx)\n\nBessey Duo Klamp - http://amzn.to/2tsSWQs (US:http://amzn.to/2sVaRBH)\n\nHultafors Talmeter tape measure - http://amzn.to/2pHwnbH (US: http://amzn.to/2oqLQc9)\n\nMoldex 6810 in-ear defenders - https://amzn.to/2P2c5nP (US:https://amzn.to/2LgIsye)\n\nMirock square - https://etsy.me/2MC0RT\n\n++++++++\n\nOther useful gear…\n\nFestool MFT - https://amzn.to/2x49HHE (US: https://amzn.to/2J25aKy)\n\nFestool PDC 18/4 - http://amzn.to/2s3J0eq (US: http://amzn.to/2tWUHEL)\n\nFestool Granat abrasive - http://amzn.to/2A3c1vW (US: http://amzn.to/2gPAAUz)\n\nFestool RTS 400 - http://amzn.to/2x6zGZW (US: http://amzn.to/2i84yXn)\n\nSpax screws - http://amzn.to/2oYWydc (US: http://amzn.to/2oOjkDT)\n\nFestool ETS 150/5 - http://amzn.to/2sapsq9 (US: http://amzn.to/2ssbZgq)\n\nFestool CTL Sys - http://amzn.to/2sKa2t3 (US: http://amzn.to/2tCvVdZ)\n\nFestool CTL SYS Bags - https://amzn.to/2G9eFVd (US: https://amzn.to/2GduBpo)\n\nTrend Air Stealth Facemask - https://amzn.to/2zah0P6 (US: https://amzn.to/2T5ww6X)\n\nBahco 6” combi square - http://amzn.to/2oumhX4 (US: http://amzn.to/2ouSg9k)\n\nSilicone brush set - http://amzn.to/2guo6Sm (US: http://amzn.to/2yEWbZI)\n\nSilicone brush (single) - http://amzn.to/2l5rNTD (US: http://amzn.to/2zqFaQl)\n\nPolyvine PolyTen PVA - http://amzn.to/2svT03N (US: http://amzn.to/2rmHYL3)", "Cabinetry Basics Part 1 [video 435]", "a9e7410f-0627-4f94-8989-02c697f32144", 10, [], 499, false, "3N_T-YpkBCg", "https://www.youtube.com/watch?v=3N_T-YpkBCg", 86, "/downloads/Vanlife/2021-01-15 Cabinetry Basics Part 1 [video 435]/Cabinetry Basics Part 1 [video 435] [3N_T-YpkBCg].mkv", false, false, false, 1, ~U[2021-01-15 12:00:03Z], ~U[2026-07-11 15:01:12Z], ~U[2026-07-11 15:01:12Z], "I get a lot of questions about cabinet and carcass construction and in this series I aim to answer them all, starting here with the most asked question of all; on a wall-hung cabinet, should the top and base sit within or above, the sides?\n\nNote that this video series is all about wall cabinets; see the Base Cabinet Basics series for details on those - https://youtu.be/XQNeiPvEQ1I\n\n\n+++++++++\n\nBecome a 10minuteworkshop Plus member - more details at 10minuteworkshop.com, sign up directly at 10minuteworkshop.plus\n\n**Support 10 Minute Workshop as a YouTube Member** http://bit.ly/10minuteMember\n\n**Support 10 Minute Workshop on Patreon** - http://www.patreon.com/10minuteworkshop\n\n**Please note that I am moving away from the legacy member platforms to concentrate on my own memberships at 10MinuteWorkshop Plus; member benefits at Patreon and YTM will be significantly reduced from October 2022.\n\nSupport the channel directly - http://bit.ly/donate_to_10minuteworkshop\n\n+++++++++\n\nIf you’re looking for a few gift ideas and would like to support the channel then take a look at my Etsy store, my Amazon Affiliate store, or any of the links below.\n\nMy Etsy - http://bit.ly/10minuteShop\n\nAmazon store - http://bit.ly/10minuteworkshop\n\nMy ‘social’ links & contacts in one place - https://www.10minuteworkshop.com/links\n\nFull list of ‘Stuff I use’ at Full list of ‘Stuff I use’ at https://www.10minuteworkshop.com\n\nConnect with me on twitter @10minuteshop\n\nConnect with me on Instagram @10minuteworkshop\n\n+++++++\n\nAs an Amazon Associate, I earn from qualifying purchases made through these links.\n\nWherever possible links are to actual products used, but this is not always possible e.g. some products are not available in the US, so something [similar] has been linked to instead.\n\nAmazon UK - https://www.amazon.co.uk/shop/petermillard1\n\n++++++++\n\nMentioned in this video:-\n\nPlastic packers or 'shims' - http://amzn.to/2vCDN27 (US:http://amzn.to/2vHk4fZ)\n\nPeanut 2 connector system - http://shop.intelligentfixings.com?ref=10minuteworkshop\n\nButtonfix - https://amzn.to/2JIXa35 (US: http://bit.ly/buttonfix_US)\n\nBenchdogs Rail Dogs - http://bit.ly/raildogs\n\nTrend MFT router jig - https://amzn.to/34wSp3b\n\nBenchdogs rail square - https://bit.ly/bench-dogs\n\nFestool TS55 Tracksaw - http://amzn.to/2pGvzDS (US: http://amzn.to/2oOgGhw)\n\nFestool Midi extractor - http://amzn.to/2tCIN3Q (US: http://amzn.to/2rKNIOx)\n\nBessey Duo Klamp - http://amzn.to/2tsSWQs (US:http://amzn.to/2sVaRBH)\n\nHultafors Talmeter tape measure - http://amzn.to/2pHwnbH (US: http://amzn.to/2oqLQc9)\n\nMoldex 6810 in-ear defenders - https://amzn.to/2P2c5nP (US:https://amzn.to/2LgIsye)\n\nMirock square - https://etsy.me/2MC0RT\n\n++++++++\n\nOther useful gear…\n\nFestool MFT - https://amzn.to/2x49HHE (US: https://amzn.to/2J25aKy)\n\nFestool PDC 18/4 - http://amzn.to/2s3J0eq (US: http://amzn.to/2tWUHEL)\n\nFestool Granat abrasive - http://amzn.to/2A3c1vW (US: http://amzn.to/2gPAAUz)\n\nFestool RTS 400 - http://amzn.to/2x6zGZW (US: http://amzn.to/2i84yXn)\n\nSpax screws - http://amzn.to/2oYWydc (US: http://amzn.to/2oOjk (truncated) 11:01:12.264 [debug] QUERY OK source="sources" db=0.1ms idle=362.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:12.264 [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] 11:01:12.264 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10246] 11:01:12.264 [debug] Current batch of media processed. Will check again in 1000ms 11:01:13.265 [debug] Current batch of media processed. Will check again in 1000ms 11:01:14.266 [debug] Current batch of media processed. Will check again in 1000ms 11:01:15.267 [debug] Current batch of media processed. Will check again in 1000ms 11:01:16.268 [debug] Current batch of media processed. Will check again in 1000ms 11:01:17.269 [debug] Current batch of media processed. Will check again in 1000ms 11:01:18.270 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "✅️ TOOLS/SUPPLIES IN THIS VIDEO\nAmana Countersink Bit - https://amzn.to/3VCZUib\nPica Dry Mechanical Pencil - https://amzn.to/3VfMwAJ\nPentel Graph Gear 1000 - https://amzn.to/3gDM5Bf\nFastCap Track Racks - https://tsoproducts.com/organization-storage/fastcap-track-rack/?ref=MWAWW\nMagenetizer/Demagnetizer - https://amzn.to/3gGcK04\nThread Checker (metric/inch) - https://amzn.to/3gNlMID\nFastCap Lefty/Rigty (Inch) tape measure – https://amzn.to/3VvuIln\nFastCap Lefty/Righty (Metric) tape measure - https://amzn.to/3UnZbjW\nFastCap 12’ (Metric/Inch) tape measure – https://amzn.to/3ASi33m\nFastCap Flatback 12’ (Metric/Inch) tape measure – https://amzn.to/3VGN0l6\nVix Bit Self Centering Drill Bit Set - https://amzn.to/3XD6o2j\n1-2-3 Blocks - https://amzn.to/3UfYn08\niGaging Set Up Blocks (set) - https://amzn.to/3F9LcJW\nStanley 12’ Tape measure – https://amzn.to/3uenR3n\nFastCap Quad Edge Banding Trimmer - https://amzn.to/3gLgUnw\nWera Ratcheting Screwdriver - https://amzn.to/3u8BwJt\n\n📽️ WHAT TO WATCH NEXT\nTools new woodworkers don't know about - https://youtu.be/BXoZUlHe2lo\nI won't work without these cheap tools - https://youtu.be/RWaHLxka7so\n10 things you'll always find in my workshop - https://youtu.be/bxVZMuPU-A0\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n\nCheap Tools I like and LOVE\n#tools #woodworking #workshop", "duration" => 1002, "filename" => "/downloads/Vanlife/2022-12-11 Why doesn't every woodworker have these cheap tools?/Why doesn't every woodworker have these cheap tools? [IerByTCZUx4].mp4", "id" => "IerByTCZUx4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IerByTCZUx4", "playlist_index" => 87, "timestamp" => 1670774443, "title" => "Why doesn't every woodworker have these cheap tools?", "upload_date" => "20221211"} 11:01:18.271 [debug] QUERY OK source="sources" db=0.1ms idle=716.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:01:18.271 [debug] QUERY OK source="sources" db=0.1ms idle=716.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:18.272 [debug] QUERY OK source="media_items" db=0.3ms idle=717.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-11 16:00:43Z], 10] 11:01:18.273 [debug] QUERY OK source="media_items" db=1.1ms idle=717.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅️ TOOLS/SUPPLIES IN THIS VIDEO\nAmana Countersink Bit - https://amzn.to/3VCZUib\nPica Dry Mechanical Pencil - https://amzn.to/3VfMwAJ\nPentel Graph Gear 1000 - https://amzn.to/3gDM5Bf\nFastCap Track Racks - https://tsoproducts.com/organization-storage/fastcap-track-rack/?ref=MWAWW\nMagenetizer/Demagnetizer - https://amzn.to/3gGcK04\nThread Checker (metric/inch) - https://amzn.to/3gNlMID\nFastCap Lefty/Rigty (Inch) tape measure – https://amzn.to/3VvuIln\nFastCap Lefty/Righty (Metric) tape measure - https://amzn.to/3UnZbjW\nFastCap 12’ (Metric/Inch) tape measure – https://amzn.to/3ASi33m\nFastCap Flatback 12’ (Metric/Inch) tape measure – https://amzn.to/3VGN0l6\nVix Bit Self Centering Drill Bit Set - https://amzn.to/3XD6o2j\n1-2-3 Blocks - https://amzn.to/3UfYn08\niGaging Set Up Blocks (set) - https://amzn.to/3F9LcJW\nStanley 12’ Tape measure – https://amzn.to/3uenR3n\nFastCap Quad Edge Banding Trimmer - https://amzn.to/3gLgUnw\nWera Ratcheting Screwdriver - https://amzn.to/3u8BwJt\n\n📽️ WHAT TO WATCH NEXT\nTools new woodworkers don't know about - https://youtu.be/BXoZUlHe2lo\nI won't work without these cheap tools - https://youtu.be/RWaHLxka7so\n10 things you'll always find in my workshop - https://youtu.be/bxVZMuPU-A0\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n\nCheap Tools I like and LOVE\n#tools #woodworking #workshop", "Why doesn't every woodworker have these cheap tools?", "e21ffdf3-048d-47c5-92b1-c18ab6196bc3", 10, [], 1002, false, "IerByTCZUx4", "https://www.youtube.com/watch?v=IerByTCZUx4", 87, "/downloads/Vanlife/2022-12-11 Why doesn't every woodworker have these cheap tools?/Why doesn't every woodworker have these cheap tools? [IerByTCZUx4].mp4", false, false, false, 1, ~U[2022-12-11 16:00:43Z], ~U[2026-07-11 15:01:18Z], ~U[2026-07-11 15:01:18Z], "✅️ TOOLS/SUPPLIES IN THIS VIDEO\nAmana Countersink Bit - https://amzn.to/3VCZUib\nPica Dry Mechanical Pencil - https://amzn.to/3VfMwAJ\nPentel Graph Gear 1000 - https://amzn.to/3gDM5Bf\nFastCap Track Racks - https://tsoproducts.com/organization-storage/fastcap-track-rack/?ref=MWAWW\nMagenetizer/Demagnetizer - https://amzn.to/3gGcK04\nThread Checker (metric/inch) - https://amzn.to/3gNlMID\nFastCap Lefty/Rigty (Inch) tape measure – https://amzn.to/3VvuIln\nFastCap Lefty/Righty (Metric) tape measure - https://amzn.to/3UnZbjW\nFastCap 12’ (Metric/Inch) tape measure – https://amzn.to/3ASi33m\nFastCap Flatback 12’ (Metric/Inch) tape measure – https://amzn.to/3VGN0l6\nVix Bit Self Centering Drill Bit Set - https://amzn.to/3XD6o2j\n1-2-3 Blocks - https://amzn.to/3UfYn08\niGaging Set Up Blocks (set) - https://amzn.to/3F9LcJW\nStanley 12’ Tape measure – https://amzn.to/3uenR3n\nFastCap Quad Edge Banding Trimmer - https://amzn.to/3gLgUnw\nWera Ratcheting Screwdriver - https://amzn.to/3u8BwJt\n\n📽️ WHAT TO WATCH NEXT\nTools new woodworkers don't know about - https://youtu.be/BXoZUlHe2lo\nI won't work without these cheap tools - https://youtu.be/RWaHLxka7so\n10 things you'll always find in my workshop - https://youtu.be/bxVZMuPU-A0\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n\nCheap Tools I like and LOVE\n#tools #woodworking #workshop", "Why doesn't every woodworker have these cheap tools?", 10, 1002, false, "IerByTCZUx4", "https://www.youtube.com/watch?v=IerByTCZUx4", "/downloads/Vanlife/2022-12-11 Why doesn't every woodworker have these cheap tools?/Why doesn't every woodworker have these cheap tools? [IerByTCZUx4].mp4", false, ~U[2022-12-11 16:00:43Z]] 11:01:18.273 [debug] QUERY OK source="sources" db=0.1ms idle=366.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:18.274 [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] 11:01:18.274 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10248] 11:01:18.274 [debug] Current batch of media processed. Will check again in 1000ms 11:01:19.275 [debug] Current batch of media processed. Will check again in 1000ms 11:01:20.276 [debug] Current batch of media processed. Will check again in 1000ms 11:01:21.277 [debug] Current batch of media processed. Will check again in 1000ms 11:01:22.278 [debug] Current batch of media processed. Will check again in 1000ms 11:01:23.279 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "📽️ WHAT TO WATCH NEXT \nMy Secrets for Cabinet Building - https://youtu.be/Vey9ZclCFMI \nTall Pantry Storage Cabinet - https://youtu.be/8SiuMTZJDqI \nOrganize any Workspace - https://youtu.be/G8HulaZXlS0\n\n✅️ PROJECT PLANS:\n6 ft long cabinet (from this video) - https://shopmwawoodworks.com/products/6-ft-base-cabinet\n5 ft long version - https://shopmwawoodworks.com/products/5-ft-base-cabinet\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO\nMag Switch – https://amzn.to/3XPDMoO\nCountersink Drill Bit – https://amzn.to/3XHRlqk\nTrack saw square – https://tsoproducts.com/guide-rail-squares/grs-16-pe-parallel-edge-guide-rail-square/?ref=MWAWW\nTrack Saw Parallel Guide - https://tsoproducts.com/parallel-guide-system/tpg-parallel-guide-system/?ref=MWAWW\nCentipede Work Holder – https://tsoproducts.com/workstations-components/bora-centipede-4x8-foot-unit-with-4-x-cups-4-clamps-carry-bag/?ref=MWAWW\nQuick & Thick Trim Glue – https://amzn.to/3W3071d\nGreen Tape – https://amzn.to/3W3htuS\nGraco Ultra Quick Shot Sprayer – https://amzn.to/3L0LZiu\nSpray Tent – https://amzn.to/3RPGkQi\nUndermount Drawer Slides – https://amzn.to/4eFiBfp\nZero Protrusion Door Hinges – https://amzn.to/3W0LfQL\nEdge Mount Door Pulls – https://amzn.to/4eIdrPx\nSheppard Bracket 34” – https://amzn.to/3L44Rgt\nSheppard Bracket 22” – https://amzn.to/3xKNluD\n18” Auger Bit - https://amzn.to/3zjnGtr\nTrack Saw – https://amzn.to/3W0Ry6K\nCircular Saw – https://amzn.to/3L0imxX\nJig Saw – https://amzn.to/3VJH0HV\nSpeed Square – https://amzn.to/3RNsrlx\nPocket Hole Jig – https://amzn.to/3L6LvaJ\nLamello Zeta P2 – https://amzn.to/3XHW5fB\nTenso Connectors - https://procabinetsupply.com/products/tenso-p-14-connector-lamello?variant=18934072180803&gad_source=1&gclid=CjwKCAjwvvmzBhA2EiwAtHVrb5kUVZ21X0WPYDoLCso0tvOZDMe4ZZ7Vvt8eghtqH9YN-O1bss4K1BoC9A8QAvD_BwE\nHidden Wireless Charger - https://amzn.to/48cyExU\nHidden Wireless Charger (includes install kit) - https://amzn.to/44Y2tj3\nUPLIFT Standing Desk Frame - https://amzn.to/45SIYd3\nUJK Drill Guide - https://tsoproducts.com/jigs-fixtures-guides/ujk-drill-guide/?ref=MWAWW\nFestool Domnio - https://amzn.to/3EHD6qU\nSoft Close Drawer Slides - https://amzn.to/3ZmP3f5\nAluminum Bar - https://amzn.to/3r9YWQW\nStraight Edge for curves - https://amzn.to/3sQoEtY\nJig Saw - https://amzn.to/3r8QrFL\n2” Forstner Bit - https://amzn.to/48iz7P1\nSmall Clamps - https://amzn.to/3riIPR0\nCountersink Drill Bit - https://amzn.to/3PdIBlW\nMulwark wrench - https://amzn.to/3sUyXNU\nPica Pencil - https://amzn.to/44PytWs\nLED KIT\nWS2815 LED Strip - https://amzn.to/3sT2Rlv\nLED Controller - https://amzn.to/45SJAiR\n4 pin connectors - https://amzn.to/3F116pn\nTouch on/off switch - https://amzn.to/3PtuFVo\n12v 5A power supply - https://amzn.to/3Oycle7\nAluminum track - https://amzn.to/3EFcF5e\n\n\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use *Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ PROJECT PLANS\nCabinet Plan Bundle (Save 50%) - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nAll Project Plans Bundled (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ Other Affiliate Partners \nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq \nTSO Products - https://tsoproducts.com/?ref=MWAWW \nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: https://patreon.com/MWAWoodworks \nGet Project Plans: https://bit.ly/download-project-plans \nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ MWA WOODWORKS ON SOCIAL \nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/\n\nThis video is about how I messed up and made my wife work in a storage closet filled with junk and then paid $4000 to make it right.\n\n#cabinets #diyproject #homeoffice", "duration" => 3330, "filename" => "/downloads/Vanlife/2024-06-30 This room was a DUMP so I did 4 things to make it an AMAZING office space/This room was a DUMP so I did 4 things to make it an AMAZING office space [P7VgbsrQ2vo].mkv", "id" => "P7VgbsrQ2vo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=P7VgbsrQ2vo", "playlist_index" => 88, "timestamp" => 1719759888, "title" => "This room was a DUMP so I did 4 things to make it an AMAZING office space", "upload_date" => "20240630"} 11:01:23.280 [debug] QUERY OK source="sources" db=0.1ms idle=1725.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:01:23.280 [debug] QUERY OK source="sources" db=0.1ms idle=1725.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:23.281 [debug] QUERY OK source="media_items" db=0.4ms idle=1725.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-30 15:04:48Z], 10] 11:01:23.293 [debug] QUERY OK source="media_items" db=11.5ms idle=1370.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📽️ WHAT TO WATCH NEXT \nMy Secrets for Cabinet Building - https://youtu.be/Vey9ZclCFMI \nTall Pantry Storage Cabinet - https://youtu.be/8SiuMTZJDqI \nOrganize any Workspace - https://youtu.be/G8HulaZXlS0\n\n✅️ PROJECT PLANS:\n6 ft long cabinet (from this video) - https://shopmwawoodworks.com/products/6-ft-base-cabinet\n5 ft long version - https://shopmwawoodworks.com/products/5-ft-base-cabinet\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO\nMag Switch – https://amzn.to/3XPDMoO\nCountersink Drill Bit – https://amzn.to/3XHRlqk\nTrack saw square – https://tsoproducts.com/guide-rail-squares/grs-16-pe-parallel-edge-guide-rail-square/?ref=MWAWW\nTrack Saw Parallel Guide - https://tsoproducts.com/parallel-guide-system/tpg-parallel-guide-system/?ref=MWAWW\nCentipede Work Holder – https://tsoproducts.com/workstations-components/bora-centipede-4x8-foot-unit-with-4-x-cups-4-clamps-carry-bag/?ref=MWAWW\nQuick & Thick Trim Glue – https://amzn.to/3W3071d\nGreen Tape – https://amzn.to/3W3htuS\nGraco Ultra Quick Shot Sprayer – https://amzn.to/3L0LZiu\nSpray Tent – https://amzn.to/3RPGkQi\nUndermount Drawer Slides – https://amzn.to/4eFiBfp\nZero Protrusion Door Hinges – https://amzn.to/3W0LfQL\nEdge Mount Door Pulls – https://amzn.to/4eIdrPx\nSheppard Bracket 34” – https://amzn.to/3L44Rgt\nSheppard Bracket 22” – https://amzn.to/3xKNluD\n18” Auger Bit - https://amzn.to/3zjnGtr\nTrack Saw – https://amzn.to/3W0Ry6K\nCircular Saw – https://amzn.to/3L0imxX\nJig Saw – https://amzn.to/3VJH0HV\nSpeed Square – https://amzn.to/3RNsrlx\nPocket Hole Jig – https://amzn.to/3L6LvaJ\nLamello Zeta P2 – https://amzn.to/3XHW5fB\nTenso Connectors - https://procabinetsupply.com/products/tenso-p-14-connector-lamello?variant=18934072180803&gad_source=1&gclid=CjwKCAjwvvmzBhA2EiwAtHVrb5kUVZ21X0WPYDoLCso0tvOZDMe4ZZ7Vvt8eghtqH9YN-O1bss4K1BoC9A8QAvD_BwE\nHidden Wireless Charger - https://amzn.to/48cyExU\nHidden Wireless Charger (includes install kit) - https://amzn.to/44Y2tj3\nUPLIFT Standing Desk Frame - https://amzn.to/45SIYd3\nUJK Drill Guide - https://tsoproducts.com/jigs-fixtures-guides/ujk-drill-guide/?ref=MWAWW\nFestool Domnio - https://amzn.to/3EHD6qU\nSoft Close Drawer Slides - https://amzn.to/3ZmP3f5\nAluminum Bar - https://amzn.to/3r9YWQW\nStraight Edge for curves - https://amzn.to/3sQoEtY\nJig Saw - https://amzn.to/3r8QrFL\n2” Forstner Bit - https://amzn.to/48iz7P1\nSmall Clamps - https://amzn.to/3riIPR0\nCountersink Drill Bit - https://amzn.to/3PdIBlW\nMulwark wrench - https://amzn.to/3sUyXNU\nPica Pencil - https://amzn.to/44PytWs\nLED KIT\nWS2815 LED Strip - https://amzn.to/3sT2Rlv\nLED Controller - https://amzn.to/45SJAiR\n4 pin connectors - https://amzn.to/3F116pn\nTouch on/off switch - https://amzn.to/3PtuFVo\n12v 5A power supply - https://amzn.to/3Oycle7\nAluminum track - https://amzn.to/3EFcF5e\n\n\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use *Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ PROJECT PLANS\nCabinet Plan Bundle (Save 50%) - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nAll Project Plans Bundled (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ Other Affiliate Partners \nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq \nTSO Products - https://tsoproducts.com/?ref=MWAWW \nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: https://patreon.com/MWAWoodworks \nGet Project Plans: https://bit.ly/download-project-plans \nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ MWA WOODWORKS ON SOCIAL \nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/\n\nThis video is about how I messed up and made my wife work in a storage closet filled with junk and then paid $4000 to make it right.\n\n#cabinets #diyproject #homeoffice", "This room was a DUMP so I did 4 things to make it an AMAZING office space", "14c2bace-0157-4bfe-8640-52b78117b26d", 10, [], 3330, false, "P7VgbsrQ2vo", "https://www.youtube.com/watch?v=P7VgbsrQ2vo", 88, "/downloads/Vanlife/2024-06-30 This room was a DUMP so I did 4 things to make it an AMAZING office space/This room was a DUMP so I did 4 things to make it an AMAZING office space [P7VgbsrQ2vo].mkv", false, false, false, 1, ~U[2024-06-30 15:04:48Z], ~U[2026-07-11 15:01:23Z], ~U[2026-07-11 15:01:23Z], "📽️ WHAT TO WATCH NEXT \nMy Secrets for Cabinet Building - https://youtu.be/Vey9ZclCFMI \nTall Pantry Storage Cabinet - https://youtu.be/8SiuMTZJDqI \nOrganize any Workspace - https://youtu.be/G8HulaZXlS0\n\n✅️ PROJECT PLANS:\n6 ft long cabinet (from this video) - https://shopmwawoodworks.com/products/6-ft-base-cabinet\n5 ft long version - https://shopmwawoodworks.com/products/5-ft-base-cabinet\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO\nMag Switch – https://amzn.to/3XPDMoO\nCountersink Drill Bit – https://amzn.to/3XHRlqk\nTrack saw square – https://tsoproducts.com/guide-rail-squares/grs-16-pe-parallel-edge-guide-rail-square/?ref=MWAWW\nTrack Saw Parallel Guide - https://tsoproducts.com/parallel-guide-system/tpg-parallel-guide-system/?ref=MWAWW\nCentipede Work Holder – https://tsoproducts.com/workstations-components/bora-centipede-4x8-foot-unit-with-4-x-cups-4-clamps-carry-bag/?ref=MWAWW\nQuick & Thick Trim Glue – https://amzn.to/3W3071d\nGreen Tape – https://amzn.to/3W3htuS\nGraco Ultra Quick Shot Sprayer – https://amzn.to/3L0LZiu\nSpray Tent – https://amzn.to/3RPGkQi\nUndermount Drawer Slides – https://amzn.to/4eFiBfp\nZero Protrusion Door Hinges – https://amzn.to/3W0LfQL\nEdge Mount Door Pulls – https://amzn.to/4eIdrPx\nSheppard Bracket 34” – https://amzn.to/3L44Rgt\nSheppard Bracket 22” – https://amzn.to/3xKNluD\n18” Auger Bit - https://amzn.to/3zjnGtr\nTrack Saw – https://amzn.to/3W0Ry6K\nCircular Saw – https://amzn.to/3L0imxX\nJig Saw – https://amzn.to/3VJH0HV\nSpeed Square – https://amzn.to/3RNsrlx\nPocket Hole Jig – https://amzn.to/3L6LvaJ\nLamello Zeta P2 – https://amzn.to/3XHW5fB\nTenso Connectors - https://procabinetsupply.com/products/tenso-p-14-connector-lamello?variant=18934072180803&gad_source=1&gclid=CjwKCAjwvvmzBhA2EiwAtHVrb5kUVZ21X0WPYDoLCso0tvOZDMe4ZZ7Vvt8eghtqH9YN-O1bss4K1BoC9A8QAvD_BwE\nHidden Wireless Charger - https://amzn.to/48cyExU\nHidden Wireless Charger (includes install kit) - https://amzn.to/44Y2tj3\nUPLIFT Standing Desk Frame - https://amzn.to/45SIYd3\nUJK Drill Guide - https://tsoproducts.com/jigs-fixtures-guides/ujk-drill-guide/?ref=MWAWW\nFestool Domnio - https://amzn.to/3EHD6qU\nSoft Close Drawer Slides - https://amzn.to/3ZmP3f5\nAluminum Bar - https://amzn.to/3r9YWQW\nStraight Edge for curves - https://amzn.to/3sQoEtY\nJig Saw - https://amzn.to/3r8QrFL\n2” Forstner Bit - https://amzn.to/48iz7P1\nSmall Clamps - https://amzn.to/3riIPR0\nCountersink Drill Bit - https://amzn.to/3PdIBlW\nMulwark wrench - https://amzn.to/3sUyXNU\nPica Pencil - https://amzn.to/44PytWs\nLED KIT\nWS2815 LED Strip - https://amzn.to/3sT2Rlv\nLED Controller - https://amzn.to/45SJAiR\n4 pin connectors - https://amzn.to/3F116pn\nTouch on/off switch - https://amzn. (truncated) 11:01:23.293 [debug] QUERY OK source="sources" db=0.2ms idle=381.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:23.293 [debug] QUERY OK source="media_profiles" db=0.0ms idle=13.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:01:23.294 [debug] QUERY OK source="media_items" db=0.2ms idle=13.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10250] 11:01:23.294 [debug] Current batch of media processed. Will check again in 1000ms 11:01:24.295 [debug] Current batch of media processed. Will check again in 1000ms 11:01:25.296 [debug] Current batch of media processed. Will check again in 1000ms 11:01:26.297 [debug] Current batch of media processed. Will check again in 1000ms 11:01:27.298 [debug] Current batch of media processed. Will check again in 1000ms 11:01:28.299 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this episode, Jeff points out some of the benefits of having Kitchen Cabinet Parts made by a CNC company. He’ll go into some of the details on how the parts will arrive and even assembles a small cabinet on camera in minutes. Hope you enjoyed this episode and thanks for watching. Jon", "duration" => 517, "filename" => "/downloads/Vanlife/2024-04-27 KITCHEN CABINETS - BUILD or BUY? ⧸ CNC Kitchen Cabinets/KITCHEN CABINETS - BUILD or BUY? ⧸ CNC Kitchen Cabinets [VAO1pg2Fh2s].mp4", "id" => "VAO1pg2Fh2s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VAO1pg2Fh2s", "playlist_index" => 89, "timestamp" => 1714221018, "title" => "KITCHEN CABINETS - BUILD or BUY? / CNC Kitchen Cabinets", "upload_date" => "20240427"} 11:01:28.300 [debug] QUERY OK source="sources" db=0.1ms idle=1745.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:01:28.300 [debug] QUERY OK source="sources" db=0.1ms idle=1745.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:28.300 [debug] QUERY OK source="media_items" db=0.4ms idle=1745.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-27 12:30:18Z], 10] 11:01:28.301 [debug] QUERY OK source="media_items" db=0.7ms idle=1385.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Jeff points out some of the benefits of having Kitchen Cabinet Parts made by a CNC company. He’ll go into some of the details on how the parts will arrive and even assembles a small cabinet on camera in minutes. Hope you enjoyed this episode and thanks for watching. Jon", "KITCHEN CABINETS - BUILD or BUY? / CNC Kitchen Cabinets", "a24cbe6c-89df-4b45-a204-728ef70322ee", 10, [], 517, false, "VAO1pg2Fh2s", "https://www.youtube.com/watch?v=VAO1pg2Fh2s", 89, "/downloads/Vanlife/2024-04-27 KITCHEN CABINETS - BUILD or BUY? ⧸ CNC Kitchen Cabinets/KITCHEN CABINETS - BUILD or BUY? ⧸ CNC Kitchen Cabinets [VAO1pg2Fh2s].mp4", false, false, false, 1, ~U[2024-04-27 12:30:18Z], ~U[2026-07-11 15:01:28Z], ~U[2026-07-11 15:01:28Z], "In this episode, Jeff points out some of the benefits of having Kitchen Cabinet Parts made by a CNC company. He’ll go into some of the details on how the parts will arrive and even assembles a small cabinet on camera in minutes. Hope you enjoyed this episode and thanks for watching. Jon", "KITCHEN CABINETS - BUILD or BUY? / CNC Kitchen Cabinets", 10, 517, false, "VAO1pg2Fh2s", "https://www.youtube.com/watch?v=VAO1pg2Fh2s", "/downloads/Vanlife/2024-04-27 KITCHEN CABINETS - BUILD or BUY? ⧸ CNC Kitchen Cabinets/KITCHEN CABINETS - BUILD or BUY? ⧸ CNC Kitchen Cabinets [VAO1pg2Fh2s].mp4", false, ~U[2024-04-27 12:30:18Z]] 11:01:28.302 [debug] QUERY OK source="sources" db=0.1ms idle=385.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:28.302 [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] 11:01:28.302 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10252] 11:01:28.302 [debug] Current batch of media processed. Will check again in 1000ms 11:01:29.303 [debug] Current batch of media processed. Will check again in 1000ms 11:01:30.304 [debug] Current batch of media processed. Will check again in 1000ms 11:01:30.482 [info] {"source":"oban","duration":1332,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:01:31.305 [debug] Current batch of media processed. Will check again in 1000ms 11:01:32.306 [debug] Current batch of media processed. Will check again in 1000ms 11:01:33.307 [debug] Current batch of media processed. Will check again in 1000ms 11:01:34.308 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Take a full tour of this custom 4x4 Mercedes Sprinter van built for off-grid adventure and everyday comfort. From the massive electrical system to the full shower, toilet, and premium interior — this van was designed to go anywhere without sacrificing luxury.\n\nIn this video, we break down:\n• Full off-grid electrical system\n• Shower + toilet setup\n• Custom kitchen and storage\n• Sleeping layout and garage space\n• Exterior upgrades and off-road capability\n• Design choices and build details\n\nWe’re Jared & Maddi, the owners behind Vancini Conversions — a Canadian custom van conversion company building one-of-a-kind homes on wheels.\n\nFollow along as we share van tours, behind-the-scenes shop life, design ideas, and the realities of building custom adventure vans from the ground up.\n\n📍 Learn More: vanciniconversions.com\n📩 Contact: info@vanciniconversions.com\n\n📱 Follow Us:\n► Instagram - / vanciniconversions\n► Facebook - / vanciniconversions\n► Pinterest - / vanciniconversions\n\n#sprintervan #vantour #vanconversion #offgridvan #vanlife #sprinter4x4 #campervan #customvan #adventurevan #vanciniConversations", "duration" => 993, "filename" => "/downloads/Vanlife/2026-05-07 Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build/Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build [84VioMSbM3c].mkv", "id" => "84VioMSbM3c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=84VioMSbM3c", "playlist_index" => 90, "timestamp" => 1778169091, "title" => "Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build", "upload_date" => "20260507"} 11:01:34.309 [debug] QUERY OK source="sources" db=0.1ms idle=754.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:01:34.309 [debug] QUERY OK source="sources" db=0.1ms idle=754.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:34.309 [debug] QUERY OK source="media_items" db=0.4ms idle=754.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-07 15:51:31Z], 10] 11:01:34.311 [debug] QUERY OK source="media_items" db=0.7ms idle=755.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Take a full tour of this custom 4x4 Mercedes Sprinter van built for off-grid adventure and everyday comfort. From the massive electrical system to the full shower, toilet, and premium interior — this van was designed to go anywhere without sacrificing luxury.\n\nIn this video, we break down:\n• Full off-grid electrical system\n• Shower + toilet setup\n• Custom kitchen and storage\n• Sleeping layout and garage space\n• Exterior upgrades and off-road capability\n• Design choices and build details\n\nWe’re Jared & Maddi, the owners behind Vancini Conversions — a Canadian custom van conversion company building one-of-a-kind homes on wheels.\n\nFollow along as we share van tours, behind-the-scenes shop life, design ideas, and the realities of building custom adventure vans from the ground up.\n\n📍 Learn More: vanciniconversions.com\n📩 Contact: info@vanciniconversions.com\n\n📱 Follow Us:\n► Instagram - / vanciniconversions\n► Facebook - / vanciniconversions\n► Pinterest - / vanciniconversions\n\n#sprintervan #vantour #vanconversion #offgridvan #vanlife #sprinter4x4 #campervan #customvan #adventurevan #vanciniConversations", "Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build", "51aa3779-78fd-4f3f-934d-aba0b19ac318", 10, [], 993, false, "84VioMSbM3c", "https://www.youtube.com/watch?v=84VioMSbM3c", 90, "/downloads/Vanlife/2026-05-07 Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build/Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build [84VioMSbM3c].mkv", false, false, false, 1, ~U[2026-05-07 15:51:31Z], ~U[2026-07-11 15:01:34Z], ~U[2026-07-11 15:01:34Z], "Take a full tour of this custom 4x4 Mercedes Sprinter van built for off-grid adventure and everyday comfort. From the massive electrical system to the full shower, toilet, and premium interior — this van was designed to go anywhere without sacrificing luxury.\n\nIn this video, we break down:\n• Full off-grid electrical system\n• Shower + toilet setup\n• Custom kitchen and storage\n• Sleeping layout and garage space\n• Exterior upgrades and off-road capability\n• Design choices and build details\n\nWe’re Jared & Maddi, the owners behind Vancini Conversions — a Canadian custom van conversion company building one-of-a-kind homes on wheels.\n\nFollow along as we share van tours, behind-the-scenes shop life, design ideas, and the realities of building custom adventure vans from the ground up.\n\n📍 Learn More: vanciniconversions.com\n📩 Contact: info@vanciniconversions.com\n\n📱 Follow Us:\n► Instagram - / vanciniconversions\n► Facebook - / vanciniconversions\n► Pinterest - / vanciniconversions\n\n#sprintervan #vantour #vanconversion #offgridvan #vanlife #sprinter4x4 #campervan #customvan #adventurevan #vanciniConversations", "Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build", 10, 993, false, "84VioMSbM3c", "https://www.youtube.com/watch?v=84VioMSbM3c", "/downloads/Vanlife/2026-05-07 Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build/Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build [84VioMSbM3c].mkv", false, ~U[2026-05-07 15:51:31Z]] 11:01:34.311 [debug] QUERY OK source="sources" db=0.1ms idle=387.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:34.311 [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] 11:01:34.311 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10255] 11:01:34.311 [debug] Current batch of media processed. Will check again in 1000ms 11:01:35.312 [debug] Current batch of media processed. Will check again in 1000ms 11:01:36.313 [debug] Current batch of media processed. Will check again in 1000ms 11:01:37.314 [debug] Current batch of media processed. Will check again in 1000ms 11:01:38.315 [debug] Current batch of media processed. Will check again in 1000ms 11:01:39.316 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "FINALLY, I am starting to cut the interior cabinets for the van! Designs by me were converted and streamlined by my buddy Ted in Portland.\nhttps://www.facebook.com/peachsmithdesigns/ \n\nThe cabinets are being cut by Detroit Woodworking in St. Clair Shores, MI. THANKS SO MUCH!\nhttps://detroitww.com/\nhttps://www.facebook.com/detroitwoodworking\n\n22960 Industrial W. Dr.\nSt. Clair Shores, MI 48080\nPhone: 586.204.5882\nFax: 313.692.6152\n\nIf you are interested in the 3D program, check out https://www.shapr3d.com/ @Shapr3d \n\n--------- SUPPORT ME ---------\nPATREON: https://www.patreon.com/JaYoe \nBUY ME A COFFEE: https://ko-fi.com/jayoe\nSHOP ON JAYOE: https://jayoe.com/jayoe-gear-and-merch/\nSEND ME ON WECHAT: http://jayoe.com/wechat/\n\n--------- SUPPORT ME ON YOUTUBE ---------\nhttps://www.youtube.com/JaYoeNation/join\n\nFollow me on the Internets…\nWEBSITE: http://www.jayoe.com \nYOUTUBE: https://www.youtube.com/JaYoeNation \nFACEBOOK: https://www.facebook.com/JaYoeLife/ \nINSTAGRAM: https://www.instagram.com/jayoelife/ \nTWITTER: https://twitter.com/jayoelife \nBilliBIlli: https://space.bilibili.com/100182773\nDouyin: 加油马特\nToutiao: http://toutiao.com/m1681328028969998/\nREDBUBBLE STORE: https://www.redbubble.com/shop/jayoe\nPERSONAL FACEBOOK: https://www.facebook.com/mcgalat \nPODCAST: https://itunes.apple.com/us/podcast/podcast-jayoe!/id1044254053?mt=2\nSTRAVA: https://www.strava.com/athletes/21659886 \nGARMIN: https://connect.garmin.com/modern/profile/JaYoeLife\n\n--------- JAYOE MERCHANDISE ON REDBUBBLE ---------\nhttps://www.redbubble.com/shop/jayoe\n\n------- WHAT DOES JAYOE MEAN? ---------\nhttps://youtu.be/4m7t4Vt1Ir8\n\n------- OTHER SERIES ON THE JAYOE NATION -------\n\nCLIMB UP MOUNT EVEREST\nWatch me on my Everest summit expedition!\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vsnzp_JW0t7Os2EEkyjt_P\n\nMARATHON IN NORTH KOREA\nJoin me as I run a marathon in North Korea, DPRK!\nhttps://youtu.be/DJxsu10VNwA\n\nTHE JAYOE TRAVELOGUES\nThe precursor to my VLOGs, a cycling travel documentary series\nhttps://jayoe.com/the-jayoe-travelogues/ \n\nMATT’S REEF TANK\nA series dedicated to the marine reef tank hobby\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vQAUeuFaIuV-BfbXw-Mx1N\n\n\n1229 – Detroit Woodworking\n\n#vanlife #CNC #interiordesign #JaYoe", "duration" => 759, "filename" => "/downloads/Vanlife/2022-11-12 CNC Cutting my VANLIFE Interior Cabinets!/CNC Cutting my VANLIFE Interior Cabinets! [tUwq85U_Roc].mp4", "id" => "tUwq85U_Roc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tUwq85U_Roc", "playlist_index" => 91, "timestamp" => 1668266955, "title" => "CNC Cutting my VANLIFE Interior Cabinets!", "upload_date" => "20221112"} 11:01:39.317 [debug] QUERY OK source="sources" db=0.1ms idle=1762.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:01:39.317 [debug] QUERY OK source="sources" db=0.1ms idle=1762.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:39.317 [debug] QUERY OK source="media_items" db=0.4ms idle=1762.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-12 15:29:15Z], 10] 11:01:39.322 [debug] QUERY OK source="media_items" db=3.8ms idle=1389.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["FINALLY, I am starting to cut the interior cabinets for the van! Designs by me were converted and streamlined by my buddy Ted in Portland.\nhttps://www.facebook.com/peachsmithdesigns/ \n\nThe cabinets are being cut by Detroit Woodworking in St. Clair Shores, MI. THANKS SO MUCH!\nhttps://detroitww.com/\nhttps://www.facebook.com/detroitwoodworking\n\n22960 Industrial W. Dr.\nSt. Clair Shores, MI 48080\nPhone: 586.204.5882\nFax: 313.692.6152\n\nIf you are interested in the 3D program, check out https://www.shapr3d.com/ @Shapr3d \n\n--------- SUPPORT ME ---------\nPATREON: https://www.patreon.com/JaYoe \nBUY ME A COFFEE: https://ko-fi.com/jayoe\nSHOP ON JAYOE: https://jayoe.com/jayoe-gear-and-merch/\nSEND ME ON WECHAT: http://jayoe.com/wechat/\n\n--------- SUPPORT ME ON YOUTUBE ---------\nhttps://www.youtube.com/JaYoeNation/join\n\nFollow me on the Internets…\nWEBSITE: http://www.jayoe.com \nYOUTUBE: https://www.youtube.com/JaYoeNation \nFACEBOOK: https://www.facebook.com/JaYoeLife/ \nINSTAGRAM: https://www.instagram.com/jayoelife/ \nTWITTER: https://twitter.com/jayoelife \nBilliBIlli: https://space.bilibili.com/100182773\nDouyin: 加油马特\nToutiao: http://toutiao.com/m1681328028969998/\nREDBUBBLE STORE: https://www.redbubble.com/shop/jayoe\nPERSONAL FACEBOOK: https://www.facebook.com/mcgalat \nPODCAST: https://itunes.apple.com/us/podcast/podcast-jayoe!/id1044254053?mt=2\nSTRAVA: https://www.strava.com/athletes/21659886 \nGARMIN: https://connect.garmin.com/modern/profile/JaYoeLife\n\n--------- JAYOE MERCHANDISE ON REDBUBBLE ---------\nhttps://www.redbubble.com/shop/jayoe\n\n------- WHAT DOES JAYOE MEAN? ---------\nhttps://youtu.be/4m7t4Vt1Ir8\n\n------- OTHER SERIES ON THE JAYOE NATION -------\n\nCLIMB UP MOUNT EVEREST\nWatch me on my Everest summit expedition!\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vsnzp_JW0t7Os2EEkyjt_P\n\nMARATHON IN NORTH KOREA\nJoin me as I run a marathon in North Korea, DPRK!\nhttps://youtu.be/DJxsu10VNwA\n\nTHE JAYOE TRAVELOGUES\nThe precursor to my VLOGs, a cycling travel documentary series\nhttps://jayoe.com/the-jayoe-travelogues/ \n\nMATT’S REEF TANK\nA series dedicated to the marine reef tank hobby\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vQAUeuFaIuV-BfbXw-Mx1N\n\n\n1229 – Detroit Woodworking\n\n#vanlife #CNC #interiordesign #JaYoe", "CNC Cutting my VANLIFE Interior Cabinets!", "fe32629e-ed1d-42c3-934d-ecc0809d2106", 10, [], 759, false, "tUwq85U_Roc", "https://www.youtube.com/watch?v=tUwq85U_Roc", 91, "/downloads/Vanlife/2022-11-12 CNC Cutting my VANLIFE Interior Cabinets!/CNC Cutting my VANLIFE Interior Cabinets! [tUwq85U_Roc].mp4", false, false, false, 1, ~U[2022-11-12 15:29:15Z], ~U[2026-07-11 15:01:39Z], ~U[2026-07-11 15:01:39Z], "FINALLY, I am starting to cut the interior cabinets for the van! Designs by me were converted and streamlined by my buddy Ted in Portland.\nhttps://www.facebook.com/peachsmithdesigns/ \n\nThe cabinets are being cut by Detroit Woodworking in St. Clair Shores, MI. THANKS SO MUCH!\nhttps://detroitww.com/\nhttps://www.facebook.com/detroitwoodworking\n\n22960 Industrial W. Dr.\nSt. Clair Shores, MI 48080\nPhone: 586.204.5882\nFax: 313.692.6152\n\nIf you are interested in the 3D program, check out https://www.shapr3d.com/ @Shapr3d \n\n--------- SUPPORT ME ---------\nPATREON: https://www.patreon.com/JaYoe \nBUY ME A COFFEE: https://ko-fi.com/jayoe\nSHOP ON JAYOE: https://jayoe.com/jayoe-gear-and-merch/\nSEND ME ON WECHAT: http://jayoe.com/wechat/\n\n--------- SUPPORT ME ON YOUTUBE ---------\nhttps://www.youtube.com/JaYoeNation/join\n\nFollow me on the Internets…\nWEBSITE: http://www.jayoe.com \nYOUTUBE: https://www.youtube.com/JaYoeNation \nFACEBOOK: https://www.facebook.com/JaYoeLife/ \nINSTAGRAM: https://www.instagram.com/jayoelife/ \nTWITTER: https://twitter.com/jayoelife \nBilliBIlli: https://space.bilibili.com/100182773\nDouyin: 加油马特\nToutiao: http://toutiao.com/m1681328028969998/\nREDBUBBLE STORE: https://www.redbubble.com/shop/jayoe\nPERSONAL FACEBOOK: https://www.facebook.com/mcgalat \nPODCAST: https://itunes.apple.com/us/podcast/podcast-jayoe!/id1044254053?mt=2\nSTRAVA: https://www.strava.com/athletes/21659886 \nGARMIN: https://connect.garmin.com/modern/profile/JaYoeLife\n\n--------- JAYOE MERCHANDISE ON REDBUBBLE ---------\nhttps://www.redbubble.com/shop/jayoe\n\n------- WHAT DOES JAYOE MEAN? ---------\nhttps://youtu.be/4m7t4Vt1Ir8\n\n------- OTHER SERIES ON THE JAYOE NATION -------\n\nCLIMB UP MOUNT EVEREST\nWatch me on my Everest summit expedition!\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vsnzp_JW0t7Os2EEkyjt_P\n\nMARATHON IN NORTH KOREA\nJoin me as I run a marathon in North Korea, DPRK!\nhttps://youtu.be/DJxsu10VNwA\n\nTHE JAYOE TRAVELOGUES\nThe precursor to my VLOGs, a cycling travel documentary series\nhttps://jayoe.com/the-jayoe-travelogues/ \n\nMATT’S REEF TANK\nA series dedicated to the marine reef tank hobby\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vQAUeuFaIuV-BfbXw-Mx1N\n\n\n1229 – Detroit Woodworking\n\n#vanlife #CNC #interiordesign #JaYoe", "CNC Cutting my VANLIFE Interior Cabinets!", 10, 759, false, "tUwq85U_Roc", "https://www.youtube.com/watch?v=tUwq85U_Roc", "/downloads/Vanlife/2022-11-12 CNC Cutting my VANLIFE Interior Cabinets!/CNC Cutting my VANLIFE Interior Cabinets! [tUwq85U_Roc].mp4", false, ~U[2022-11-12 15:29:15Z]] 11:01:39.322 [debug] QUERY OK source="sources" db=0.2ms idle=392.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:39.322 [debug] QUERY OK source="media_profiles" db=0.0ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:01:39.323 [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 [10257] 11:01:39.323 [debug] Current batch of media processed. Will check again in 1000ms 11:01:40.323 [debug] Current batch of media processed. Will check again in 1000ms 11:01:41.324 [debug] Current batch of media processed. Will check again in 1000ms 11:01:42.325 [debug] Current batch of media processed. Will check again in 1000ms 11:01:43.326 [debug] Current batch of media processed. Will check again in 1000ms 11:01:44.327 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "THE CONCRETE OASIS REDEFINES THE BOUNDARIES BETWEEN ADVENTURE AND STYLE\n\nInspired by Tulum-style architecture, its visual aesthetic is nothing short of breathtaking. With European-imported concrete-like finishes, walnut wood accents, top-level systems, and an unmatched attention to detail, this van breaks all the norms of the traditional campervan world. Every inch has been meticulously designed to offer a truly unique and immersive experience.\n\nMore than just campervans, these vans are meticulously designed to inspire adventure, comfort, and connection - blending exceptional craftsmanship with the freedom to explore anywhere in style.", "duration" => 835, "filename" => "/downloads/Vanlife/2025-07-09 CONCRETE OASIS 2.0 WALKTHROUGH/CONCRETE OASIS 2.0 WALKTHROUGH [I7pePvaQeZ4].mkv", "id" => "I7pePvaQeZ4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=I7pePvaQeZ4", "playlist_index" => 92, "timestamp" => 1752081343, "title" => "CONCRETE OASIS 2.0 WALKTHROUGH", "upload_date" => "20250709"} 11:01:44.327 [debug] QUERY OK source="sources" db=0.1ms idle=1773.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:01:44.328 [debug] QUERY OK source="sources" db=0.1ms idle=1773.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:44.328 [debug] QUERY OK source="media_items" db=0.3ms idle=1773.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-09 17:15:43Z], 10] 11:01:44.329 [debug] QUERY OK source="media_items" db=0.7ms idle=1395.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["THE CONCRETE OASIS REDEFINES THE BOUNDARIES BETWEEN ADVENTURE AND STYLE\n\nInspired by Tulum-style architecture, its visual aesthetic is nothing short of breathtaking. With European-imported concrete-like finishes, walnut wood accents, top-level systems, and an unmatched attention to detail, this van breaks all the norms of the traditional campervan world. Every inch has been meticulously designed to offer a truly unique and immersive experience.\n\nMore than just campervans, these vans are meticulously designed to inspire adventure, comfort, and connection - blending exceptional craftsmanship with the freedom to explore anywhere in style.", "CONCRETE OASIS 2.0 WALKTHROUGH", "a894c2e1-0f2d-4c1f-b996-c7bd7ba75ec9", 10, [], 835, false, "I7pePvaQeZ4", "https://www.youtube.com/watch?v=I7pePvaQeZ4", 92, "/downloads/Vanlife/2025-07-09 CONCRETE OASIS 2.0 WALKTHROUGH/CONCRETE OASIS 2.0 WALKTHROUGH [I7pePvaQeZ4].mkv", false, false, false, 1, ~U[2025-07-09 17:15:43Z], ~U[2026-07-11 15:01:44Z], ~U[2026-07-11 15:01:44Z], "THE CONCRETE OASIS REDEFINES THE BOUNDARIES BETWEEN ADVENTURE AND STYLE\n\nInspired by Tulum-style architecture, its visual aesthetic is nothing short of breathtaking. With European-imported concrete-like finishes, walnut wood accents, top-level systems, and an unmatched attention to detail, this van breaks all the norms of the traditional campervan world. Every inch has been meticulously designed to offer a truly unique and immersive experience.\n\nMore than just campervans, these vans are meticulously designed to inspire adventure, comfort, and connection - blending exceptional craftsmanship with the freedom to explore anywhere in style.", "CONCRETE OASIS 2.0 WALKTHROUGH", 10, 835, false, "I7pePvaQeZ4", "https://www.youtube.com/watch?v=I7pePvaQeZ4", "/downloads/Vanlife/2025-07-09 CONCRETE OASIS 2.0 WALKTHROUGH/CONCRETE OASIS 2.0 WALKTHROUGH [I7pePvaQeZ4].mkv", false, ~U[2025-07-09 17:15:43Z]] 11:01:44.330 [debug] QUERY OK source="sources" db=0.2ms idle=395.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:44.330 [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] 11:01:44.330 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10258] 11:01:44.330 [debug] Current batch of media processed. Will check again in 1000ms 11:01:45.331 [debug] Current batch of media processed. Will check again in 1000ms 11:01:46.332 [debug] Current batch of media processed. Will check again in 1000ms 11:01:47.333 [debug] Current batch of media processed. Will check again in 1000ms 11:01:48.334 [debug] Current batch of media processed. Will check again in 1000ms 11:01:49.335 [debug] Current batch of media processed. Will check again in 1000ms 11:01:50.336 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We spent 6 months converting this van and filmed the entire process (or at least 90% of it...)! Watch as we convert an empty 2023 high roof, extended length Ford Transit into a luxury home on wheels. \n \nWe hope you enjoy getting a sneak peek into what went into our latest van conversion!\n\nAs always, we thank you for your support and for following along.\n \n-------------\n \nFULL VAN TOUR: https://www.youtube.com/watch?v=EpPZ2slykHA&t=28s\n \nFor business inquiries please contact us via email: triovanconversions@gmail.com\n \nAs always, please LIKE 👍🏻 this video, SUBSCRIBE to our channel, and COMMENT if you have any questions or feedback!\n \nFollow us on Instagram for behind the scenes content: @thetriointransit\n \nThank you for your support!\n \n--------------\n \nVan Components\nInterior:\nNovaKool r4500 DC fridge\nBrava smart oven\nEmpava 1800W dual burner induction cooktop: https://amzn.to/39MJxwP\nKraus 15 x 20 inch stainless steel sink: https://amzn.to/3kQVLql\nKraus stainless steel faucet\n12V Mi Heat heated floor\nNautilus retractable shower door\nXgimi MOGO 2 Pro Projector\nCuddy compositing toilet https://compocloset.com/?ref=Ppz_GFst...\nand use code “goanywhere” for free shipping\nVancillary headliner shelf: https://amzn.to/3vTYzJz\nHavelock Wool insulation: https://havelockwool.com/\nSimarine PICO https://simarine.net/ 5% Off Discount Code: tim&katie5\nGopower 3000W inverter/Charger\nCTEK Smartpass 120s: https://amzn.to/3kQVPGB\nCTEK D250SE: https://amzn.to/3KVOH6D\nVolthium 400AH self-heating 12V Lithium Phosphate Battery: https://volthium.com/en/\nEberspacher M2 B4L gas heater\nBlueSea fuse block: https://amzn.to/3P4R9La\nPeplink BR1 Max Pro 5G Pro router\nStarlink with our own design and 3D printed Trio Flatmount\nUndermount AC 12V: https://undermountac.com/collections/...\n \nExterior:\nVanspeed Shop Capsules\nCRL Bunk Half slider windows\nPeplink Mobility 42G 7 in 1 antenna\nMaxxAir Deluxe fan: https://amzn.to/38brXSE\nBlack Rhino Arsenal wheels\nFalkan A/T4W tires (https://www.falkentire.com/wildpeak/at4w)\nRover Vans Accessory rack, ladder and tire carrier, expedition box\nKuat SR Piston bike racks\nCAtuned Ford Transit bumper\nWarn VR Evo 12-S winch\nBaja Designs LP6s\nAuxbeam 52\" lightbar\nBrightsource area lights\nThule Hideaway 10' awning\n8x Newpowa 100W solar panels\n1x Gorichsolar 100W slim solar panel\n \nSuspension:\nTransit Off Road 2\" Lift Kit\nSumosprings\nSupersprings\nCoil Sumosprings\n\n\nChapters:\n00:00 - Subfloor\n00:37 - Ceiling Fan\n00:49 - Fiberglass Capsules\n01:22 - Sheep’s Wool Insulation\n01:39 - Furring Strips\n02:17 - Headliner Shelf\n02:32 - Sheet Vinyl Floor\n02:45 - 12V Heated Floor\n03:14 - Shower Framing\n03:40 - Bed Bump Outs\n04:04 - Custom Roof Rack\n04:42 - Peplink Cellular Antenna\n04:48 - Tongue and Groove Ceiling\n05:36 - Bed Platform\n06:22 - Cabinets\n09:33 - AC Ducting\n09:41 - Countertop\n10:47 - Solar Electrical System\n11:30 - Cabinet Hardware\n11:57 - Wall Panels\n12:23 - Side Steps\n12:44 - Backsplash\n12:56 - Shower\n14:37 - Pull-out Toilet\n15:37 - Exterior Lighting and Solar Panels\n16:48 - Aftermarket Hitch Receiver\n16:57 - Painting\n17:08 - Off Grid Electrical System\n17:31 - Espar B4L Gasoline Heater\n18:16 - Exterior Lighting Switch Panel\n18:31 - Alternator Charging System\n18:51 - Plumbing and Shower Walls\n19:28 - Bumper, Winch, Lights\n19:58 - Utensil Drawer\n20:05 - Shower Wall and Trim\n20:44 - 34 Gallon Freshwater Tank\n21:00 - Control Panel Wall\n21:20 - Undermount Air Conditioning\n22:15 - Garage Cabinets\n23:03 - Trim\n23:20 - Water Filter\n23:30 - Slam Latches and Gas Struts\n23:57 - Dinette Table\n24:03 - Shower Trim\n24:15 - 20 Gallon Graywater Tank\n25:10 - Shower Niche and Door\n25:41 - Control Panel\n25:59 - Garage Cabinets and Drawer\n27:14 - 3D Printed Starlink Flatmount\n27:59 - Custom Cushions\n28:07 - Bed Rail\n28:25 - Custom Mattress\n28:34 - Rear Door Templates\n28:50 - Rear Door Accessories\n29:29 - The Final Result!\n\n\n\n17:04 - Finishing up", "duration" => 1812, "filename" => "/downloads/Vanlife/2023-12-23 DIY Campervan Conversion | Full Build TIMELAPSE (6 Months)/DIY Campervan Conversion | Full Build TIMELAPSE (6 Months) [AeCekt3bGSs].mp4", "id" => "AeCekt3bGSs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AeCekt3bGSs", "playlist_index" => 93, "timestamp" => 1703311440, "title" => "DIY Campervan Conversion | Full Build TIMELAPSE (6 Months)", "upload_date" => "20231223"} 11:01:50.337 [debug] QUERY OK source="sources" db=0.1ms idle=782.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:01:50.337 [debug] QUERY OK source="sources" db=0.1ms idle=782.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:50.338 [debug] QUERY OK source="media_items" db=0.4ms idle=783.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-23 06:04:00Z], 10] 11:01:50.340 [debug] QUERY OK source="media_items" db=2.1ms idle=783.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We spent 6 months converting this van and filmed the entire process (or at least 90% of it...)! Watch as we convert an empty 2023 high roof, extended length Ford Transit into a luxury home on wheels. \n \nWe hope you enjoy getting a sneak peek into what went into our latest van conversion!\n\nAs always, we thank you for your support and for following along.\n \n-------------\n \nFULL VAN TOUR: https://www.youtube.com/watch?v=EpPZ2slykHA&t=28s\n \nFor business inquiries please contact us via email: triovanconversions@gmail.com\n \nAs always, please LIKE 👍🏻 this video, SUBSCRIBE to our channel, and COMMENT if you have any questions or feedback!\n \nFollow us on Instagram for behind the scenes content: @thetriointransit\n \nThank you for your support!\n \n--------------\n \nVan Components\nInterior:\nNovaKool r4500 DC fridge\nBrava smart oven\nEmpava 1800W dual burner induction cooktop: https://amzn.to/39MJxwP\nKraus 15 x 20 inch stainless steel sink: https://amzn.to/3kQVLql\nKraus stainless steel faucet\n12V Mi Heat heated floor\nNautilus retractable shower door\nXgimi MOGO 2 Pro Projector\nCuddy compositing toilet https://compocloset.com/?ref=Ppz_GFst...\nand use code “goanywhere” for free shipping\nVancillary headliner shelf: https://amzn.to/3vTYzJz\nHavelock Wool insulation: https://havelockwool.com/\nSimarine PICO https://simarine.net/ 5% Off Discount Code: tim&katie5\nGopower 3000W inverter/Charger\nCTEK Smartpass 120s: https://amzn.to/3kQVPGB\nCTEK D250SE: https://amzn.to/3KVOH6D\nVolthium 400AH self-heating 12V Lithium Phosphate Battery: https://volthium.com/en/\nEberspacher M2 B4L gas heater\nBlueSea fuse block: https://amzn.to/3P4R9La\nPeplink BR1 Max Pro 5G Pro router\nStarlink with our own design and 3D printed Trio Flatmount\nUndermount AC 12V: https://undermountac.com/collections/...\n \nExterior:\nVanspeed Shop Capsules\nCRL Bunk Half slider windows\nPeplink Mobility 42G 7 in 1 antenna\nMaxxAir Deluxe fan: https://amzn.to/38brXSE\nBlack Rhino Arsenal wheels\nFalkan A/T4W tires (https://www.falkentire.com/wildpeak/at4w)\nRover Vans Accessory rack, ladder and tire carrier, expedition box\nKuat SR Piston bike racks\nCAtuned Ford Transit bumper\nWarn VR Evo 12-S winch\nBaja Designs LP6s\nAuxbeam 52\" lightbar\nBrightsource area lights\nThule Hideaway 10' awning\n8x Newpowa 100W solar panels\n1x Gorichsolar 100W slim solar panel\n \nSuspension:\nTransit Off Road 2\" Lift Kit\nSumosprings\nSupersprings\nCoil Sumosprings\n\n\nChapters:\n00:00 - Subfloor\n00:37 - Ceiling Fan\n00:49 - Fiberglass Capsules\n01:22 - Sheep’s Wool Insulation\n01:39 - Furring Strips\n02:17 - Headliner Shelf\n02:32 - Sheet Vinyl Floor\n02:45 - 12V Heated Floor\n03:14 - Shower Framing\n03:40 - Bed Bump Outs\n04:04 - Custom Roof Rack\n04:42 - Peplink Cellular Antenna\n04:48 - Tongue and Groove Ceiling\n05:36 - Bed Platform\n06:22 - Cabinets\n09:33 - AC Ducting\n09:41 - Countertop\n10:47 - Solar Electrical System\n11:30 - Cabinet Hardware\n11:57 - Wall Panels\n12:23 - Side Steps\n12:44 - Backsplash\n12:56 - Shower\n14:37 - Pull-out Toilet\n15:37 - Exterior Lighting and Solar Panels\n16:48 - Aftermarket Hitch Receiver\n16:57 - Painting\n17:08 - Off Grid Electrical System\n17:31 - Espar B4L Gasoline Heater\n18:16 - Exterior Lighting Switch Panel\n18:31 - Alternator Charging System\n18:51 - Plumbing and Shower Walls\n19:28 - Bumper, Winch, Lights\n19:58 - Utensil Drawer\n20:05 - Shower Wall and Trim\n20:44 - 34 Gallon Freshwater Tank\n21:00 - Control Panel Wall\n21:20 - Undermount Air Conditioning\n22:15 - Garage Cabinets\n23:03 - Trim\n23:20 - Water Filter\n23:30 - Slam Latches and Gas Struts\n23:57 - Dinette Table\n24:03 - Shower Trim\n24:15 - 20 Gallon Graywater Tank\n25:10 - Shower Niche and Door\n25:41 - Control Panel\n25:59 - Garage Cabinets and Drawer\n27:14 - 3D Printed Starlink Flatmount\n27:59 - Custom Cushions\n28:07 - Bed Rail\n28:25 - Custom Mattress\n28:34 - Rear Door Templates\n28:50 - Rear Door Accessories\n29:29 - The Final Result!\n\n\n\n17:04 - Finishing up", "DIY Campervan Conversion | Full Build TIMELAPSE (6 Months)", "6798a51a-c9c4-41d8-852b-64ba61aa9bc8", 10, [], 1812, false, "AeCekt3bGSs", "https://www.youtube.com/watch?v=AeCekt3bGSs", 93, "/downloads/Vanlife/2023-12-23 DIY Campervan Conversion | Full Build TIMELAPSE (6 Months)/DIY Campervan Conversion | Full Build TIMELAPSE (6 Months) [AeCekt3bGSs].mp4", false, false, false, 1, ~U[2023-12-23 06:04:00Z], ~U[2026-07-11 15:01:50Z], ~U[2026-07-11 15:01:50Z], "We spent 6 months converting this van and filmed the entire process (or at least 90% of it...)! Watch as we convert an empty 2023 high roof, extended length Ford Transit into a luxury home on wheels. \n \nWe hope you enjoy getting a sneak peek into what went into our latest van conversion!\n\nAs always, we thank you for your support and for following along.\n \n-------------\n \nFULL VAN TOUR: https://www.youtube.com/watch?v=EpPZ2slykHA&t=28s\n \nFor business inquiries please contact us via email: triovanconversions@gmail.com\n \nAs always, please LIKE 👍🏻 this video, SUBSCRIBE to our channel, and COMMENT if you have any questions or feedback!\n \nFollow us on Instagram for behind the scenes content: @thetriointransit\n \nThank you for your support!\n \n--------------\n \nVan Components\nInterior:\nNovaKool r4500 DC fridge\nBrava smart oven\nEmpava 1800W dual burner induction cooktop: https://amzn.to/39MJxwP\nKraus 15 x 20 inch stainless steel sink: https://amzn.to/3kQVLql\nKraus stainless steel faucet\n12V Mi Heat heated floor\nNautilus retractable shower door\nXgimi MOGO 2 Pro Projector\nCuddy compositing toilet https://compocloset.com/?ref=Ppz_GFst...\nand use code “goanywhere” for free shipping\nVancillary headliner shelf: https://amzn.to/3vTYzJz\nHavelock Wool insulation: https://havelockwool.com/\nSimarine PICO https://simarine.net/ 5% Off Discount Code: tim&katie5\nGopower 3000W inverter/Charger\nCTEK Smartpass 120s: https://amzn.to/3kQVPGB\nCTEK D250SE: https://amzn.to/3KVOH6D\nVolthium 400AH self-heating 12V Lithium Phosphate Battery: https://volthium.com/en/\nEberspacher M2 B4L gas heater\nBlueSea fuse block: https://amzn.to/3P4R9La\nPeplink BR1 Max Pro 5G Pro router\nStarlink with our own design and 3D printed Trio Flatmount\nUndermount AC 12V: https://undermountac.com/collections/...\n \nExterior:\nVanspeed Shop Capsules\nCRL Bunk Half slider windows\nPeplink Mobility 42G 7 in 1 antenna\nMaxxAir Deluxe fan: https://amzn.to/38brXSE\nBlack Rhino Arsenal wheels\nFalkan A/T4W tires (https://www.falkentire.com/wildpeak/at4w)\nRover Vans Accessory rack, ladder and tire carrier, expedition box\nKuat SR Piston bike racks\nCAtuned Ford Transit bumper\nWarn VR Evo 12-S winch\nBaja Designs LP6s\nAuxbeam 52\" lightbar\nBrightsource area lights\nThule Hideaway 10' awning\n8x Newpowa 100W solar panels\n1x Gorichsolar 100W slim solar panel\n \nSuspension:\nTransit Off Road 2\" Lift Kit\nSumosprings\nSupersprings\nCoil Sumosprings\n\n\nChapters:\n00:00 - Subfloor\n00:37 - Ceiling Fan\n00:49 - Fiberglass Capsules\n01:22 - Sheep’s Wool Insulation\n01:39 - Furring Strips\n02:17 - Headliner Shelf\n02:32 - Sheet Vinyl Floor\n02:45 - 12V Heated Floor\n03:14 - Shower Framing\n03:40 - Bed Bump Outs\n04:04 - Custom Roof Rack\n04:42 - Peplink Cellular Antenna\n04:48 - Tongue and Groove Ceiling\n05:36 - Bed Platform\n06:22 - Cabinets (truncated) 11:01:50.341 [debug] QUERY OK source="sources" db=0.1ms idle=400.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:50.341 [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] 11:01:50.342 [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 [10260] 11:01:50.342 [debug] Current batch of media processed. Will check again in 1000ms 11:01:51.342 [debug] Current batch of media processed. Will check again in 1000ms 11:01:52.343 [debug] Current batch of media processed. Will check again in 1000ms 11:01:53.344 [debug] Current batch of media processed. Will check again in 1000ms 11:01:54.345 [debug] Current batch of media processed. Will check again in 1000ms 11:01:55.346 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Join us for an in-depth van tour of this meticulously designed camper van, perfect for any adventure travel plans! This van conversion showcases a comfortable interior with ample storage and a compact shower, emphasizing its suitability for life off grid. It truly embodies the spirit of van life and is ready for your next road trip.\n\nhttp://tinyplanet.group/jtorbita\n\u00A0\u2068@TinyPlanetGroup\u2069\n\n00:00 - Intro\n01:10 - We traveled the World\n05:21 - Exterior (suspension, compartments, bike rack)\n09:33 - Under mount heated water tank (custom)\n11:19 - Front bumper\n12:20 - Roof rack & awning\n13:10 - Roof solar and roof seating area\n14:40 - Sliding door entry\n15:35 - Front seating section with extra bed\n20:08 - Galley and kitchen\n24:47 - Lighting package (16 zones)\n26:28 - Smart system controls\n30:55 - Fridge\n31:25 - Shower and toilet (real concrete walls)\n34:28 - Rear seating dineate\n39:00 - Bed and how it's made\n41:30 - Garage\n43:49 - Voice command smart system\n45:55 - Price\n46:30 - Company information\n\nAll Jarrod Tocci Information:\nOther Channels: \u00A0\u2068@Tocrastuido\u2069\u00A0 \nWant to work together or feature your build?\n📩 Business inquiries: jarrod.tocci@thestation.io\n info@jarrodtocci.com\nFOLLOW ALONG:\nInstagram ➜ https://www.instagram.com/jarrodtocci \nWebsite ➜ https://jarrodtocci.com/\n\n🔗 MY FAVORITE GEAR & PARTNER DISCOUNTS\nThese are products I personally use and love. Some links are affiliate links — using them helps support the channel at no extra cost to you. 🙏\n🛠 Vamonos Vans — DIY Van Build Kits & Parts \nSubfloors, wall systems, beds & more to make your build faster and cleaner \n10% off with code TOCCI10 \n➜ https://vamonosvans.myshopify.com?sca_ref=10251043.INRrlDK4aZN16Wd\n🔋 BigBattery.com – Off-Grid BatteriesSave with code TOCCI10 ➜ https://bigbattery.com/?ref=230\n🛏 Roam Rest MattressesUse code jarrodtocci10 at checkout ➜ https://roamrest.com\n🔆 Sunflare Solar – Flexible, walkable solar panels\n10% off + Free Shipping with code Jarrod10\nOverland & rooftop tents ➜ https://www.sunflarexplor.com\nTiny homes & residential ➜ https://www.sunflarearray.com\n🚽 CompoCloset Composting Toilets\nSmell-free, easy to use\nStandard ➜ https://compocloset.com/?ref=2meJcc2Cz6jLa\nS1 Sealer ➜ https://compocloset.com/pages/compocloset-s1-sealer?currency=USD\n🧊 ICECO Portable Fridges & Freezers12% off with code JARRODTOCCI ➜ https://icecofreezer.com/JarrodTocci\n⚡️ RV Solar & Electrical Systems by RV ConnectionsGet your off-grid system set up ➜ https://rvsolarconnections.com/ref/1063/Use code JARRODT5 for a discount!\n🪵 TotalBoat Epoxy & Wood FinishesGreat for DIY and woodworking projects ➜ https://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n🧰 Zarges – Rugged Aluminum Hard Cases\nPerfect for overlanding & gear storage ➜ Zarges\n🐑 Havelock Wool Insulation\nAll-natural, sustainable ➜ http://havelockwool.refr.cc/jarrodt\n🏝 Sandy Vans – 10% off select van upgrades\nUse code JARROD10 at checkout\n➜ https://sandyvans.com/JARROD10\nEligible products: Boost Box, SV Sandbar Roof Rack [2008+], Side Ladder, Starboard/Port Racks, Side Steps, Spare Tire Rack, Boost Box Mini, Stern Rear Step, Headliner Shelf\n🪵 Solid Wood Worx – $100 off PreCut Kits for overlanding vehicles\nUse code JARROD100 at checkout\n➜ https://solidwoodworx.com/JARROD100", "duration" => 2875, "filename" => "/downloads/Vanlife/2026-03-05 The Luxury Van That Traveled 25,000 Miles Across Continents/The Luxury Van That Traveled 25,000 Miles Across Continents [GfUU1pJOgUM].mkv", "id" => "GfUU1pJOgUM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GfUU1pJOgUM", "playlist_index" => 94, "timestamp" => 1772744428, "title" => "The Luxury Van That Traveled 25,000 Miles Across Continents", "upload_date" => "20260305"} 11:01:55.347 [debug] QUERY OK source="sources" db=0.1ms idle=1792.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:01:55.347 [debug] QUERY OK source="sources" db=0.1ms idle=1792.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:55.347 [debug] QUERY OK source="media_items" db=0.4ms idle=1793.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-05 21:00:28Z], 10] 11:01:55.350 [debug] QUERY OK source="media_items" db=1.8ms idle=1402.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join us for an in-depth van tour of this meticulously designed camper van, perfect for any adventure travel plans! This van conversion showcases a comfortable interior with ample storage and a compact shower, emphasizing its suitability for life off grid. It truly embodies the spirit of van life and is ready for your next road trip.\n\nhttp://tinyplanet.group/jtorbita\n\u00A0\u2068@TinyPlanetGroup\u2069\n\n00:00 - Intro\n01:10 - We traveled the World\n05:21 - Exterior (suspension, compartments, bike rack)\n09:33 - Under mount heated water tank (custom)\n11:19 - Front bumper\n12:20 - Roof rack & awning\n13:10 - Roof solar and roof seating area\n14:40 - Sliding door entry\n15:35 - Front seating section with extra bed\n20:08 - Galley and kitchen\n24:47 - Lighting package (16 zones)\n26:28 - Smart system controls\n30:55 - Fridge\n31:25 - Shower and toilet (real concrete walls)\n34:28 - Rear seating dineate\n39:00 - Bed and how it's made\n41:30 - Garage\n43:49 - Voice command smart system\n45:55 - Price\n46:30 - Company information\n\nAll Jarrod Tocci Information:\nOther Channels: \u00A0\u2068@Tocrastuido\u2069\u00A0 \nWant to work together or feature your build?\n📩 Business inquiries: jarrod.tocci@thestation.io\n info@jarrodtocci.com\nFOLLOW ALONG:\nInstagram ➜ https://www.instagram.com/jarrodtocci \nWebsite ➜ https://jarrodtocci.com/\n\n🔗 MY FAVORITE GEAR & PARTNER DISCOUNTS\nThese are products I personally use and love. Some links are affiliate links — using them helps support the channel at no extra cost to you. 🙏\n🛠 Vamonos Vans — DIY Van Build Kits & Parts \nSubfloors, wall systems, beds & more to make your build faster and cleaner \n10% off with code TOCCI10 \n➜ https://vamonosvans.myshopify.com?sca_ref=10251043.INRrlDK4aZN16Wd\n🔋 BigBattery.com – Off-Grid BatteriesSave with code TOCCI10 ➜ https://bigbattery.com/?ref=230\n🛏 Roam Rest MattressesUse code jarrodtocci10 at checkout ➜ https://roamrest.com\n🔆 Sunflare Solar – Flexible, walkable solar panels\n10% off + Free Shipping with code Jarrod10\nOverland & rooftop tents ➜ https://www.sunflarexplor.com\nTiny homes & residential ➜ https://www.sunflarearray.com\n🚽 CompoCloset Composting Toilets\nSmell-free, easy to use\nStandard ➜ https://compocloset.com/?ref=2meJcc2Cz6jLa\nS1 Sealer ➜ https://compocloset.com/pages/compocloset-s1-sealer?currency=USD\n🧊 ICECO Portable Fridges & Freezers12% off with code JARRODTOCCI ➜ https://icecofreezer.com/JarrodTocci\n⚡️ RV Solar & Electrical Systems by RV ConnectionsGet your off-grid system set up ➜ https://rvsolarconnections.com/ref/1063/Use code JARRODT5 for a discount!\n🪵 TotalBoat Epoxy & Wood FinishesGreat for DIY and woodworking projects ➜ https://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n🧰 Zarges – Rugged Aluminum Hard Cases\nPerfect for overlanding & gear storage ➜ Zarges\n🐑 Havelock Wool Insulation\nAll-natural, sustainable ➜ http://havelockwool.refr.cc/jarrodt\n🏝 Sandy Vans – 10% off select van upgrades\nUse code JARROD10 at checkout\n➜ https://sandyvans.com/JARROD10\nEligible products: Boost Box, SV Sandbar Roof Rack [2008+], Side Ladder, Starboard/Port Racks, Side Steps, Spare Tire Rack, Boost Box Mini, Stern Rear Step, Headliner Shelf\n🪵 Solid Wood Worx – $100 off PreCut Kits for overlanding vehicles\nUse code JARROD100 at checkout\n➜ https://solidwoodworx.com/JARROD100", "The Luxury Van That Traveled 25,000 Miles Across Continents", "44c70063-be86-4005-993f-a9883f7f938e", 10, [], 2875, false, "GfUU1pJOgUM", "https://www.youtube.com/watch?v=GfUU1pJOgUM", 94, "/downloads/Vanlife/2026-03-05 The Luxury Van That Traveled 25,000 Miles Across Continents/The Luxury Van That Traveled 25,000 Miles Across Continents [GfUU1pJOgUM].mkv", false, false, false, 1, ~U[2026-03-05 21:00:28Z], ~U[2026-07-11 15:01:55Z], ~U[2026-07-11 15:01:55Z], "Join us for an in-depth van tour of this meticulously designed camper van, perfect for any adventure travel plans! This van conversion showcases a comfortable interior with ample storage and a compact shower, emphasizing its suitability for life off grid. It truly embodies the spirit of van life and is ready for your next road trip.\n\nhttp://tinyplanet.group/jtorbita\n\u00A0\u2068@TinyPlanetGroup\u2069\n\n00:00 - Intro\n01:10 - We traveled the World\n05:21 - Exterior (suspension, compartments, bike rack)\n09:33 - Under mount heated water tank (custom)\n11:19 - Front bumper\n12:20 - Roof rack & awning\n13:10 - Roof solar and roof seating area\n14:40 - Sliding door entry\n15:35 - Front seating section with extra bed\n20:08 - Galley and kitchen\n24:47 - Lighting package (16 zones)\n26:28 - Smart system controls\n30:55 - Fridge\n31:25 - Shower and toilet (real concrete walls)\n34:28 - Rear seating dineate\n39:00 - Bed and how it's made\n41:30 - Garage\n43:49 - Voice command smart system\n45:55 - Price\n46:30 - Company information\n\nAll Jarrod Tocci Information:\nOther Channels: \u00A0\u2068@Tocrastuido\u2069\u00A0 \nWant to work together or feature your build?\n📩 Business inquiries: jarrod.tocci@thestation.io\n info@jarrodtocci.com\nFOLLOW ALONG:\nInstagram ➜ https://www.instagram.com/jarrodtocci \nWebsite ➜ https://jarrodtocci.com/\n\n🔗 MY FAVORITE GEAR & PARTNER DISCOUNTS\nThese are products I personally use and love. Some links are affiliate links — using them helps support the channel at no extra cost to you. 🙏\n🛠 Vamonos Vans — DIY Van Build Kits & Parts \nSubfloors, wall systems, beds & more to make your build faster and cleaner \n10% off with code TOCCI10 \n➜ https://vamonosvans.myshopify.com?sca_ref=10251043.INRrlDK4aZN16Wd\n🔋 BigBattery.com – Off-Grid BatteriesSave with code TOCCI10 ➜ https://bigbattery.com/?ref=230\n🛏 Roam Rest MattressesUse code jarrodtocci10 at checkout ➜ https://roamrest.com\n🔆 Sunflare Solar – Flexible, walkable solar panels\n10% off + Free Shipping with code Jarrod10\nOverland & rooftop tents ➜ https://www.sunflarexplor.com\nTiny homes & residential ➜ https://www.sunflarearray.com\n🚽 CompoCloset Composting Toilets\nSmell-free, easy to use\nStandard ➜ https://compocloset.com/?ref=2meJcc2Cz6jLa\nS1 Sealer ➜ https://compocloset.com/pages/compocloset-s1-sealer?currency=USD\n🧊 ICECO Portable Fridges & Freezers12% off with code JARRODTOCCI ➜ https://icecofreezer.com/JarrodTocci\n⚡️ RV Solar & Electrical Systems by RV ConnectionsGet your off-grid system set up ➜ https://rvsolarconnections.com/ref/1063/Use code JARRODT5 for a discount!\n🪵 TotalBoat Epoxy & Wood FinishesGreat for DIY and woodworking projects ➜ https://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n🧰 Zarges – Rugged Aluminum Hard Cases\nPerfect for overlanding & gear storage ➜ Zarges\n🐑 Havelock Wool Insulation\nAll-natural, sustainable ➜ http://havelockwool.refr.cc/jarrodt\n🏝 Sandy Vans – 10% off select van upgrades\nUse code JARROD10 at checkout\n➜ https://sandyvans.com/JARROD10\nEligible products: Boost Box, SV Sandbar Roof Rack [2008+], Side Ladder, Starboard/Port Racks, Side Steps, Spare Tire Rack, Boost Box Mini, Stern Rear Step, Headliner Shelf\n🪵 Solid Wood Worx – $100 off PreCut Kits for overlanding vehicles\nUse code JARROD100 at checkout\n➜ h (truncated) 11:01:55.350 [debug] QUERY OK source="sources" db=0.2ms idle=403.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:01:55.351 [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] 11:01:55.351 [debug] QUERY OK source="media_items" db=0.1ms 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 [10262] 11:01:55.351 [debug] Current batch of media processed. Will check again in 1000ms 11:01:56.352 [debug] Current batch of media processed. Will check again in 1000ms 11:01:57.353 [debug] Current batch of media processed. Will check again in 1000ms 11:01:58.354 [debug] Current batch of media processed. Will check again in 1000ms 11:01:59.355 [debug] Current batch of media processed. Will check again in 1000ms 11:02:00.206 [info] {"source":"oban","duration":131,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:02:00.356 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Full Van Tour https://youtu.be/BLZwNQhsi4Y?si=J0LMrxdxCfGzeVX8\n\n🔗 EXPLORE THE BUILD\n\n🚐 The full van build → jonroams.co.uk/van-build\n💷 What it cost (the honest numbers) → jonroams.co.uk/van-cost\n📊 Monthly expenses → jonroams.co.uk/monthly-expenses\n⚡ Electrical reports → jonroams.co.uk/electrical-reports\n\n🛠️ FREE TOOLS & CALCULATORS\n\n💷 Monthly Budget Calculator → jonroams.co.uk/monthly-cost-calculator\n🔨 Conversion Cost Calculator → jonroams.co.uk/conversion-cost-calculator\n☀️ Solar & Battery Sizing Calculator → jonroams.co.uk/solar-sizing-calculator\n⛽ Fuel Cost Calculator → jonroams.co.uk/fuel-cost-calculator\n🏕️ Wild Camping Checker → jonroams.co.uk/wild-camping-checker\n\n🎒 GEAR I ACTUALLY USE\n\n📷 Camera & filming gear → jonroams.co.uk/camera-gear\n💻 My desk setup → jonroams.co.uk/desk-setup\n🧺 Van life essentials → jonroams.co.uk/van-life-essentials\n🥾 Hiking gear → jonroams.co.uk/hiking-gear\n🏷️ Links & discount codes → jonroams.co.uk/links-discounts\n\n📬 SAY HELLO\n\n🤝 Work with me → jonroams@influint.co\n✉️ Get in touch → jonroams.co.uk/contact\n\nSolo travel, filmed and edited by me while living on the road.\n\nAll footage in this video was captured on location during my travels. No stock footage or AI-generated visuals — everything you see was filmed by me.\n\nSub Count: 1,999", "duration" => 1411, "filename" => "/downloads/Vanlife/2026-04-10 What Vanlife ALONE Is ACTUALLY Like/What Vanlife ALONE Is ACTUALLY Like [pFohl7T9Y1o].mkv", "id" => "pFohl7T9Y1o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pFohl7T9Y1o", "playlist_index" => 95, "timestamp" => 1775836884, "title" => "What Vanlife ALONE Is ACTUALLY Like", "upload_date" => "20260410"} 11:02:00.357 [debug] QUERY OK source="sources" db=0.1ms idle=1802.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:02:00.357 [debug] QUERY OK source="sources" db=0.1ms idle=1802.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:00.357 [debug] QUERY OK source="media_items" db=0.4ms idle=1405.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-10 16:01:24Z], 10] 11:02:00.359 [debug] QUERY OK source="media_items" db=1.1ms idle=404.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Full Van Tour https://youtu.be/BLZwNQhsi4Y?si=J0LMrxdxCfGzeVX8\n\n🔗 EXPLORE THE BUILD\n\n🚐 The full van build → jonroams.co.uk/van-build\n💷 What it cost (the honest numbers) → jonroams.co.uk/van-cost\n📊 Monthly expenses → jonroams.co.uk/monthly-expenses\n⚡ Electrical reports → jonroams.co.uk/electrical-reports\n\n🛠️ FREE TOOLS & CALCULATORS\n\n💷 Monthly Budget Calculator → jonroams.co.uk/monthly-cost-calculator\n🔨 Conversion Cost Calculator → jonroams.co.uk/conversion-cost-calculator\n☀️ Solar & Battery Sizing Calculator → jonroams.co.uk/solar-sizing-calculator\n⛽ Fuel Cost Calculator → jonroams.co.uk/fuel-cost-calculator\n🏕️ Wild Camping Checker → jonroams.co.uk/wild-camping-checker\n\n🎒 GEAR I ACTUALLY USE\n\n📷 Camera & filming gear → jonroams.co.uk/camera-gear\n💻 My desk setup → jonroams.co.uk/desk-setup\n🧺 Van life essentials → jonroams.co.uk/van-life-essentials\n🥾 Hiking gear → jonroams.co.uk/hiking-gear\n🏷️ Links & discount codes → jonroams.co.uk/links-discounts\n\n📬 SAY HELLO\n\n🤝 Work with me → jonroams@influint.co\n✉️ Get in touch → jonroams.co.uk/contact\n\nSolo travel, filmed and edited by me while living on the road.\n\nAll footage in this video was captured on location during my travels. No stock footage or AI-generated visuals — everything you see was filmed by me.\n\nSub Count: 1,999", "What Vanlife ALONE Is ACTUALLY Like", "67ae9910-c423-4839-824f-143098d5e5b7", 10, [], 1411, false, "pFohl7T9Y1o", "https://www.youtube.com/watch?v=pFohl7T9Y1o", 95, "/downloads/Vanlife/2026-04-10 What Vanlife ALONE Is ACTUALLY Like/What Vanlife ALONE Is ACTUALLY Like [pFohl7T9Y1o].mkv", false, false, false, 1, ~U[2026-04-10 16:01:24Z], ~U[2026-07-11 15:02:00Z], ~U[2026-07-11 15:02:00Z], "Full Van Tour https://youtu.be/BLZwNQhsi4Y?si=J0LMrxdxCfGzeVX8\n\n🔗 EXPLORE THE BUILD\n\n🚐 The full van build → jonroams.co.uk/van-build\n💷 What it cost (the honest numbers) → jonroams.co.uk/van-cost\n📊 Monthly expenses → jonroams.co.uk/monthly-expenses\n⚡ Electrical reports → jonroams.co.uk/electrical-reports\n\n🛠️ FREE TOOLS & CALCULATORS\n\n💷 Monthly Budget Calculator → jonroams.co.uk/monthly-cost-calculator\n🔨 Conversion Cost Calculator → jonroams.co.uk/conversion-cost-calculator\n☀️ Solar & Battery Sizing Calculator → jonroams.co.uk/solar-sizing-calculator\n⛽ Fuel Cost Calculator → jonroams.co.uk/fuel-cost-calculator\n🏕️ Wild Camping Checker → jonroams.co.uk/wild-camping-checker\n\n🎒 GEAR I ACTUALLY USE\n\n📷 Camera & filming gear → jonroams.co.uk/camera-gear\n💻 My desk setup → jonroams.co.uk/desk-setup\n🧺 Van life essentials → jonroams.co.uk/van-life-essentials\n🥾 Hiking gear → jonroams.co.uk/hiking-gear\n🏷️ Links & discount codes → jonroams.co.uk/links-discounts\n\n📬 SAY HELLO\n\n🤝 Work with me → jonroams@influint.co\n✉️ Get in touch → jonroams.co.uk/contact\n\nSolo travel, filmed and edited by me while living on the road.\n\nAll footage in this video was captured on location during my travels. No stock footage or AI-generated visuals — everything you see was filmed by me.\n\nSub Count: 1,999", "What Vanlife ALONE Is ACTUALLY Like", 10, 1411, false, "pFohl7T9Y1o", "https://www.youtube.com/watch?v=pFohl7T9Y1o", "/downloads/Vanlife/2026-04-10 What Vanlife ALONE Is ACTUALLY Like/What Vanlife ALONE Is ACTUALLY Like [pFohl7T9Y1o].mkv", false, ~U[2026-04-10 16:01:24Z]] 11:02:00.359 [debug] QUERY OK source="sources" db=0.1ms idle=153.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:00.360 [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] 11:02:00.360 [debug] QUERY OK source="media_items" db=0.2ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10264] 11:02:00.360 [debug] Current batch of media processed. Will check again in 1000ms 11:02:00.484 [info] {"source":"oban","duration":738,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:02:01.361 [debug] Current batch of media processed. Will check again in 1000ms 11:02:02.362 [debug] Current batch of media processed. Will check again in 1000ms 11:02:03.363 [debug] Current batch of media processed. Will check again in 1000ms 11:02:04.364 [debug] Current batch of media processed. Will check again in 1000ms 11:02:05.365 [debug] Current batch of media processed. Will check again in 1000ms 11:02:06.366 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "His Social Media Links:\nHis Instagram - https://www.instagram.com/lucasravizza/\nHis Business Site - https://hoo.be/lucasravizza\n\nInterested In Being Featured On The Channel? : http://bit.ly/Tour-Application\n\nVIDEO DESCRIPTION:\n\nIn this detailed video tour, Lucas Ravizza unveils \"Odyssey,\" a custom-built van packed with innovative design features and high-end amenities. Lucas spent nine months meticulously crafting this van, ensuring that every inch serves a purpose while maintaining a sleek and functional aesthetic. \n\nKitchen and Storage Solutions\nLucas kicks off the tour by introducing the kitchen, a true marvel of space efficiency and thoughtful design. The centerpiece of this area is the set of French doors that serve as both a visual and functional highlight. These doors, fitted with a smart tint film, offer privacy with a simple click, transforming from transparent to opaque instantly. Behind these doors, Lucas stores his wine glasses, plates, and other essentials, making the most of every inch of space. \n\nThe kitchen also features a KitchenAid air fryer, capable of baking, broiling, and toasting, making it an all-in-one oven solution for life on the road. Nearby, a hidden charger is cleverly integrated under the countertop, offering a convenient spot to power up devices without cluttering the workspace. The kitchen includes ample food storage, with upper cabinets, a dual burner induction cooktop, and a spacious Dometic 140L fridge, which can store up to two weeks of food.\n\nAdvanced Heating and Power Systems\nOne of the most impressive aspects of Odyssey is the full hydronic heating system known as \"Rixen's.\" This system uses coolant from both the engine and a separate rear tank, offering a range of heating options, including air heat, heated floors, and instant hot water. The system is controlled by a simple interface that allows Lucas to preheat the engine on cold mornings, ensuring a smooth start without the wear of cold starts. The van is powered by a massive 1200 amp hour battery bank, capable of running high-demand appliances like the induction cooktop and air conditioning for extended periods.\n\nShower and Bathroom Setup\nThe shower in Odyssey is another example of Lucas's attention to detail and design. Featuring a Moen shower head with a water flow of 1.5 gallons per minute, the shower ensures efficient use of the 42-gallon water tank. The bathroom also includes the Laveo Dry Flush toilet, a hands-off, no-compost system that is easy to manage, though it requires refilling cartridges. The shower space is beautifully finished with Italian tile, adding a touch of luxury to this compact area. A walk-through design allows the shower to serve as a passage between the main living area and the cab, optimizing the van's layout.\n\nLounge and Sleeping Areas\nLucas has designed the lounge area to be both cozy and functional. Despite being smaller than in his previous builds, this space is perfectly tailored for relaxation. The bed, part of the Happy Jack system, is adjustable to different heights, allowing for flexible sleeping arrangements. Side capsules extend the sleeping space, accommodating Lucas’s 6'1\" frame comfortably. The lounge also features a Lagoon table and multiple outlets, ensuring convenience and connectivity.\n\nCustom Flooring and Finishing Touches\nThe flooring in Odyssey is a work of art in itself. Lucas custom-made each piece of the Chevron walnut floor, spending over 100 hours to ensure it was perfect. This level of craftsmanship extends to the Roman clay finish on the ceiling above the bed, giving the space a smooth, marbled effect that feels both luxurious and cozy.\n\nElectrical System and Off-Grid Capabilities\nOdyssey is equipped with a robust electrical system, including 1200 amp hours of lithium batteries, a 12-volt cruising comfort air conditioner, and 520 watts of solar power on the roof. This setup allows Lucas to live off-grid for up to two weeks, enjoying all the comforts of home while on the road. Lucas shares tips for managing the electrical system, including the importance of securing batterie" <> ..., "duration" => 1009, "filename" => "/downloads/Vanlife/2024-08-27 The Most Innovative Camper Van You Have Ever Seen/The Most Innovative Camper Van You Have Ever Seen [dSYKabw_rgs].mp4", "id" => "dSYKabw_rgs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dSYKabw_rgs", "playlist_index" => 96, "timestamp" => 1724778028, "title" => "The Most Innovative Camper Van You Have Ever Seen", "upload_date" => "20240827"} 11:02:06.367 [debug] QUERY OK source="sources" db=0.2ms idle=812.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:02:06.367 [debug] QUERY OK source="sources" db=0.1ms idle=812.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:06.368 [debug] QUERY OK source="media_items" db=0.4ms idle=813.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-27 17:00:28Z], 10] 11:02:06.371 [debug] QUERY OK source="media_items" db=2.4ms idle=813.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["His Social Media Links:\nHis Instagram - https://www.instagram.com/lucasravizza/\nHis Business Site - https://hoo.be/lucasravizza\n\nInterested In Being Featured On The Channel? : http://bit.ly/Tour-Application\n\nVIDEO DESCRIPTION:\n\nIn this detailed video tour, Lucas Ravizza unveils \"Odyssey,\" a custom-built van packed with innovative design features and high-end amenities. Lucas spent nine months meticulously crafting this van, ensuring that every inch serves a purpose while maintaining a sleek and functional aesthetic. \n\nKitchen and Storage Solutions\nLucas kicks off the tour by introducing the kitchen, a true marvel of space efficiency and thoughtful design. The centerpiece of this area is the set of French doors that serve as both a visual and functional highlight. These doors, fitted with a smart tint film, offer privacy with a simple click, transforming from transparent to opaque instantly. Behind these doors, Lucas stores his wine glasses, plates, and other essentials, making the most of every inch of space. \n\nThe kitchen also features a KitchenAid air fryer, capable of baking, broiling, and toasting, making it an all-in-one oven solution for life on the road. Nearby, a hidden charger is cleverly integrated under the countertop, offering a convenient spot to power up devices without cluttering the workspace. The kitchen includes ample food storage, with upper cabinets, a dual burner induction cooktop, and a spacious Dometic 140L fridge, which can store up to two weeks of food.\n\nAdvanced Heating and Power Systems\nOne of the most impressive aspects of Odyssey is the full hydronic heating system known as \"Rixen's.\" This system uses coolant from both the engine and a separate rear tank, offering a range of heating options, including air heat, heated floors, and instant hot water. The system is controlled by a simple interface that allows Lucas to preheat the engine on cold mornings, ensuring a smooth start without the wear of cold starts. The van is powered by a massive 1200 amp hour battery bank, capable of running high-demand appliances like the induction cooktop and air conditioning for extended periods.\n\nShower and Bathroom Setup\nThe shower in Odyssey is another example of Lucas's attention to detail and design. Featuring a Moen shower head with a water flow of 1.5 gallons per minute, the shower ensures efficient use of the 42-gallon water tank. The bathroom also includes the Laveo Dry Flush toilet, a hands-off, no-compost system that is easy to manage, though it requires refilling cartridges. The shower space is beautifully finished with Italian tile, adding a touch of luxury to this compact area. A walk-through design allows the shower to serve as a passage between the main living area and the cab, optimizing the van's layout.\n\nLounge and Sleeping Areas\nLucas has designed the lounge area to be both cozy and functional. Despite being smaller than in his previous builds, this space is perfectly tailored for relaxation. The bed, part of the Happy Jack system, is adjustable to different heights, allowing for flexible sleeping arrangements. Side capsules extend the sleeping space, accommodating Lucas’s 6'1\" frame comfortably. The lounge also features a Lagoon table and multiple outlets, ensuring convenience and connectivity.\n\nCustom Flooring and Finishing Touches\nThe flooring in Odyssey is a work of art in itself. Lucas custom-made each piece of the Chevron walnut floor, spending over 100 hours to ensure it was perfect. This level of craftsmanship extends to the Roman clay finish on the ceiling above the bed, giving the space a smooth, marbled effect that feels both luxurious and cozy.\n\nElectrical System and Off-Grid Capabilities\nOdyssey is equipped with a robust electrical system, including 1200 amp hours of lithium batteries, a 12-volt cruising comfort air conditioner, and 520 watts of solar power on the roof. This setup allows Lucas to live off-grid for up to two weeks, enjoying all the comforts of home while on the road. Lucas shares tips for managing the electrical system, including the importance of securing batterie" <> ..., "The Most Innovative Camper Van You Have Ever Seen", "c1b67cf0-f3aa-4e18-bf51-b8e300bf3444", 10, [], 1009, false, "dSYKabw_rgs", "https://www.youtube.com/watch?v=dSYKabw_rgs", 96, "/downloads/Vanlife/2024-08-27 The Most Innovative Camper Van You Have Ever Seen/The Most Innovative Camper Van You Have Ever Seen [dSYKabw_rgs].mp4", false, false, false, 1, ~U[2024-08-27 17:00:28Z], ~U[2026-07-11 15:02:06Z], ~U[2026-07-11 15:02:06Z], "His Social Media Links:\nHis Instagram - https://www.instagram.com/lucasravizza/\nHis Business Site - https://hoo.be/lucasravizza\n\nInterested In Being Featured On The Channel? : http://bit.ly/Tour-Application\n\nVIDEO DESCRIPTION:\n\nIn this detailed video tour, Lucas Ravizza unveils \"Odyssey,\" a custom-built van packed with innovative design features and high-end amenities. Lucas spent nine months meticulously crafting this van, ensuring that every inch serves a purpose while maintaining a sleek and functional aesthetic. \n\nKitchen and Storage Solutions\nLucas kicks off the tour by introducing the kitchen, a true marvel of space efficiency and thoughtful design. The centerpiece of this area is the set of French doors that serve as both a visual and functional highlight. These doors, fitted with a smart tint film, offer privacy with a simple click, transforming from transparent to opaque instantly. Behind these doors, Lucas stores his wine glasses, plates, and other essentials, making the most of every inch of space. \n\nThe kitchen also features a KitchenAid air fryer, capable of baking, broiling, and toasting, making it an all-in-one oven solution for life on the road. Nearby, a hidden charger is cleverly integrated under the countertop, offering a convenient spot to power up devices without cluttering the workspace. The kitchen includes ample food storage, with upper cabinets, a dual burner induction cooktop, and a spacious Dometic 140L fridge, which can store up to two weeks of food.\n\nAdvanced Heating and Power Systems\nOne of the most impressive aspects of Odyssey is the full hydronic heating system known as \"Rixen's.\" This system uses coolant from both the engine and a separate rear tank, offering a range of heating options, including air heat, heated floors, and instant hot water. The system is controlled by a simple interface that allows Lucas to preheat the engine on cold mornings, ensuring a smooth start without the wear of cold starts. The van is powered by a massive 1200 amp hour battery bank, capable of running high-demand appliances like the induction cooktop and air conditioning for extended periods.\n\nShower and Bathroom Setup\nThe shower in Odyssey is another example of Lucas's attention to detail and design. Featuring a Moen shower head with a water flow of 1.5 gallons per minute, the shower ensures efficient use of the 42-gallon water tank. The bathroom also includes the Laveo Dry Flush toilet, a hands-off, no-compost system that is easy to manage, though it requires refilling cartridges. The shower space is beautifully finished with Italian tile, adding a touch of luxury to this compact area. A walk-through design allows the shower to serve as a passage between the main living area and the cab, optimizing the van's layout.\n\nLou (truncated) 11:02:06.371 [debug] QUERY OK source="sources" db=0.1ms idle=411.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:06.371 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:02:06.372 [debug] QUERY OK source="media_items" db=0.1ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10266] 11:02:06.372 [debug] Current batch of media processed. Will check again in 1000ms 11:02:07.372 [debug] Current batch of media processed. Will check again in 1000ms 11:02:08.373 [debug] Current batch of media processed. Will check again in 1000ms 11:02:09.374 [debug] Current batch of media processed. Will check again in 1000ms 11:02:10.375 [debug] Current batch of media processed. Will check again in 1000ms 11:02:11.376 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Have a look at our latest trail ready Ford Transit van conversion! We added a bunch of new features to this one including: hidden projector screen, full size shower with slide out toilet, a Brava smart oven, heaps of exterior accessories, 2\" lift kit, and so much more— come on in! \n\nInterior:\nNovaKool r4500 DC fridge\nBrava smart oven\nEmpava 1800W dual burner induction cooktop: https://amzn.to/39MJxwP \nKraus 15 x 20 inch stainless steel sink: https://amzn.to/3kQVLql\nKraus stainless steel faucet\n12V Mi Heat heated floor\nNautilus retractable shower door\nXgimi MOGO 2 Pro Projector\nCuddy compositing toilet \nhttps://compocloset.com/?ref=Ppz_GFstb7bUHp\nand use code “goanywhere” for free shipping\nVancillary headliner shelf: https://amzn.to/3vTYzJz \nHavelock Wool insulation: \nhttps://havelockwool.com/\nSimarine PICO \nhttps://simarine.net/\n 5% Off Discount Code: tim&katie5\nGopower 3000W inverter/Charger\nCTEK Smartpass 120s: \nhttps://amzn.to/3kQVPGB \nCTEK D250SE: \nhttps://amzn.to/3KVOH6D\nVolthium 400AH self-heating 12V Lithium Phosphate Battery: \nhttps://volthium.com/en/\nEberspacher M2 B4L gas heater\nBlueSea fuse block: \nhttps://amzn.to/3P4R9La\nPeplink BR1 Max Pro 5G Pro router\nStarlink with our own design and 3D printed Trio Flatmount www.trioflatmount.com\nUndermount AC 12V: https://undermountac.com/collections/air-conditioning/products/complete-proair-12v-air-conditioner-for-class-b-van-trailer-or-camper\n\nExterior:\n\nVanspeed Shop Capsules\nCRL Bunk Half slider windows\nPeplink Mobility 42G 7 in 1 antenna\nMaxxAir Deluxe fan: \nhttps://amzn.to/38brXSE\nBlack Rhino Arsenal wheels\nFalkan Rubitrek tires\nRover Vans Accessory rack, ladder and tire carrier, expedition box\nKuat SR Piston bike racks\nCAtuned Ford Transit bumper\nWarn VR Evo 12-S winch\nBaja Designs LP6s\nAuxbeam 52\" lightbar\nBrightsource area lights\nThule Hideaway 10' awning\n8x Newpowa 100W solar panels\n1x Gorichsolar 100W slim solar panel\n\nSuspension:\nTransit Off Road 2\" Lift Kit\nSumosprings\nSupersprings\nCoil Sumosprings\n\nFor business inquiries please contact us via email: triovanconversions@gmail.com\n\nAs always, please LIKE 👍🏻 this video, SUBSCRIBE to our channel, and COMMENT if you have any questions or feedback!\n\nFollow us on Instagram for behind the scenes content: @thetriointransit \n\nThank you for your support! \n🙏🏻\n\nTIMESTAMPS:\n0:00 Intro\n0:35 Wet Bath\n2:50 Kitchen\n5:40 Bed Area\n7:49 Dinette\n8:37 Internet Systems\n9:26 Lighting\n9:49 Control Panel\n10:52 Cab Area\n12:11 Exterior Accessories\n13:19 Suspension\n13:55 Capsules\n14:11 Awning\n14:32 Rear Door Accessories\n15:41 Graywater system\n16:02 Rooftop\n17:20 Garage\n19:15 Electrical System\n20:18 Undermount Air Conditioning\n21:09 Conclusion", "duration" => 1301, "filename" => "/downloads/Vanlife/2023-11-25 VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE/VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE [YAntvoL5VUc].mp4", "id" => "YAntvoL5VUc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=YAntvoL5VUc", "playlist_index" => 97, "timestamp" => 1700924112, "title" => "VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE", "upload_date" => "20231125"} 11:02:11.377 [debug] QUERY OK source="sources" db=0.1ms idle=1822.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:02:11.377 [debug] QUERY OK source="sources" db=0.1ms idle=1822.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:11.378 [debug] QUERY OK source="media_items" db=0.4ms idle=1823.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-25 14:55:12Z], 10] 11:02:11.380 [debug] QUERY OK source="media_items" db=1.7ms idle=1414.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Have a look at our latest trail ready Ford Transit van conversion! We added a bunch of new features to this one including: hidden projector screen, full size shower with slide out toilet, a Brava smart oven, heaps of exterior accessories, 2\" lift kit, and so much more— come on in! \n\nInterior:\nNovaKool r4500 DC fridge\nBrava smart oven\nEmpava 1800W dual burner induction cooktop: https://amzn.to/39MJxwP \nKraus 15 x 20 inch stainless steel sink: https://amzn.to/3kQVLql\nKraus stainless steel faucet\n12V Mi Heat heated floor\nNautilus retractable shower door\nXgimi MOGO 2 Pro Projector\nCuddy compositing toilet \nhttps://compocloset.com/?ref=Ppz_GFstb7bUHp\nand use code “goanywhere” for free shipping\nVancillary headliner shelf: https://amzn.to/3vTYzJz \nHavelock Wool insulation: \nhttps://havelockwool.com/\nSimarine PICO \nhttps://simarine.net/\n 5% Off Discount Code: tim&katie5\nGopower 3000W inverter/Charger\nCTEK Smartpass 120s: \nhttps://amzn.to/3kQVPGB \nCTEK D250SE: \nhttps://amzn.to/3KVOH6D\nVolthium 400AH self-heating 12V Lithium Phosphate Battery: \nhttps://volthium.com/en/\nEberspacher M2 B4L gas heater\nBlueSea fuse block: \nhttps://amzn.to/3P4R9La\nPeplink BR1 Max Pro 5G Pro router\nStarlink with our own design and 3D printed Trio Flatmount www.trioflatmount.com\nUndermount AC 12V: https://undermountac.com/collections/air-conditioning/products/complete-proair-12v-air-conditioner-for-class-b-van-trailer-or-camper\n\nExterior:\n\nVanspeed Shop Capsules\nCRL Bunk Half slider windows\nPeplink Mobility 42G 7 in 1 antenna\nMaxxAir Deluxe fan: \nhttps://amzn.to/38brXSE\nBlack Rhino Arsenal wheels\nFalkan Rubitrek tires\nRover Vans Accessory rack, ladder and tire carrier, expedition box\nKuat SR Piston bike racks\nCAtuned Ford Transit bumper\nWarn VR Evo 12-S winch\nBaja Designs LP6s\nAuxbeam 52\" lightbar\nBrightsource area lights\nThule Hideaway 10' awning\n8x Newpowa 100W solar panels\n1x Gorichsolar 100W slim solar panel\n\nSuspension:\nTransit Off Road 2\" Lift Kit\nSumosprings\nSupersprings\nCoil Sumosprings\n\nFor business inquiries please contact us via email: triovanconversions@gmail.com\n\nAs always, please LIKE 👍🏻 this video, SUBSCRIBE to our channel, and COMMENT if you have any questions or feedback!\n\nFollow us on Instagram for behind the scenes content: @thetriointransit \n\nThank you for your support! \n🙏🏻\n\nTIMESTAMPS:\n0:00 Intro\n0:35 Wet Bath\n2:50 Kitchen\n5:40 Bed Area\n7:49 Dinette\n8:37 Internet Systems\n9:26 Lighting\n9:49 Control Panel\n10:52 Cab Area\n12:11 Exterior Accessories\n13:19 Suspension\n13:55 Capsules\n14:11 Awning\n14:32 Rear Door Accessories\n15:41 Graywater system\n16:02 Rooftop\n17:20 Garage\n19:15 Electrical System\n20:18 Undermount Air Conditioning\n21:09 Conclusion", "VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE", "5545c043-9092-4ae1-ad53-6b8f206d1e09", 10, [], 1301, false, "YAntvoL5VUc", "https://www.youtube.com/watch?v=YAntvoL5VUc", 97, "/downloads/Vanlife/2023-11-25 VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE/VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE [YAntvoL5VUc].mp4", false, false, false, 1, ~U[2023-11-25 14:55:12Z], ~U[2026-07-11 15:02:11Z], ~U[2026-07-11 15:02:11Z], "Have a look at our latest trail ready Ford Transit van conversion! We added a bunch of new features to this one including: hidden projector screen, full size shower with slide out toilet, a Brava smart oven, heaps of exterior accessories, 2\" lift kit, and so much more— come on in! \n\nInterior:\nNovaKool r4500 DC fridge\nBrava smart oven\nEmpava 1800W dual burner induction cooktop: https://amzn.to/39MJxwP \nKraus 15 x 20 inch stainless steel sink: https://amzn.to/3kQVLql\nKraus stainless steel faucet\n12V Mi Heat heated floor\nNautilus retractable shower door\nXgimi MOGO 2 Pro Projector\nCuddy compositing toilet \nhttps://compocloset.com/?ref=Ppz_GFstb7bUHp\nand use code “goanywhere” for free shipping\nVancillary headliner shelf: https://amzn.to/3vTYzJz \nHavelock Wool insulation: \nhttps://havelockwool.com/\nSimarine PICO \nhttps://simarine.net/\n 5% Off Discount Code: tim&katie5\nGopower 3000W inverter/Charger\nCTEK Smartpass 120s: \nhttps://amzn.to/3kQVPGB \nCTEK D250SE: \nhttps://amzn.to/3KVOH6D\nVolthium 400AH self-heating 12V Lithium Phosphate Battery: \nhttps://volthium.com/en/\nEberspacher M2 B4L gas heater\nBlueSea fuse block: \nhttps://amzn.to/3P4R9La\nPeplink BR1 Max Pro 5G Pro router\nStarlink with our own design and 3D printed Trio Flatmount www.trioflatmount.com\nUndermount AC 12V: https://undermountac.com/collections/air-conditioning/products/complete-proair-12v-air-conditioner-for-class-b-van-trailer-or-camper\n\nExterior:\n\nVanspeed Shop Capsules\nCRL Bunk Half slider windows\nPeplink Mobility 42G 7 in 1 antenna\nMaxxAir Deluxe fan: \nhttps://amzn.to/38brXSE\nBlack Rhino Arsenal wheels\nFalkan Rubitrek tires\nRover Vans Accessory rack, ladder and tire carrier, expedition box\nKuat SR Piston bike racks\nCAtuned Ford Transit bumper\nWarn VR Evo 12-S winch\nBaja Designs LP6s\nAuxbeam 52\" lightbar\nBrightsource area lights\nThule Hideaway 10' awning\n8x Newpowa 100W solar panels\n1x Gorichsolar 100W slim solar panel\n\nSuspension:\nTransit Off Road 2\" Lift Kit\nSumosprings\nSupersprings\nCoil Sumosprings\n\nFor business inquiries please contact us via email: triovanconversions@gmail.com\n\nAs always, please LIKE 👍🏻 this video, SUBSCRIBE to our channel, and COMMENT if you have any questions or feedback!\n\nFollow us on Instagram for behind the scenes content: @thetriointransit \n\nThank you for your support! \n🙏🏻\n\nTIMESTAMPS:\n0:00 Intro\n0:35 Wet Bath\n2:50 Kitchen\n5:40 Bed Area\n7:49 Dinette\n8:37 Internet Systems\n9:26 Lighting\n9:49 Control Panel\n10:52 Cab Area\n12:11 Exterior Accessories\n13:19 Suspension\n13:55 Capsules\n14:11 Awning\n14:32 Rear Door Accessories\n15:41 Graywater system\n16:02 Rooftop\n17:20 Garage\n19:15 Electrical System\n20:18 Undermount Air Conditioning\n21:09 Conclusion", "VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE", 10, 1301, false, "YAntvoL5VUc", "https://www.youtube.com/watch?v=YAntvoL5VUc", "/downloads/Vanlife/2023-11-25 VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE/VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE [YAntvoL5VUc].mp4", false, ~U[2023-11-25 14:55:12Z]] 11:02:11.380 [debug] QUERY OK source="sources" db=0.2ms idle=415.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:11.380 [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] 11:02:11.381 [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 [10268] 11:02:11.381 [debug] Current batch of media processed. Will check again in 1000ms 11:02:12.382 [debug] Current batch of media processed. Will check again in 1000ms 11:02:13.383 [debug] Current batch of media processed. Will check again in 1000ms 11:02:14.384 [debug] Current batch of media processed. Will check again in 1000ms 11:02:15.385 [debug] Current batch of media processed. Will check again in 1000ms 11:02:16.386 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The video many have asked for; the full explanation of my \"free hot water\" set up, using a heat exchanger and a closed loop glycol system. A passive system that takes advantage of the fact that you are driving anyway. Why not harness that wasted energy to make hot water every time you drive!\n#onahumbleroad\n#customvanbuild", "duration" => 707, "filename" => "/downloads/Vanlife/2021-08-08 Make hot water in your van, while you drive!/Make hot water in your van, while you drive! [xTFbJQTjEa8].mp4", "id" => "xTFbJQTjEa8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xTFbJQTjEa8", "playlist_index" => 98, "timestamp" => 1628424021, "title" => "Make hot water in your van, while you drive!", "upload_date" => "20210808"} 11:02:16.386 [debug] QUERY OK source="sources" db=0.1ms idle=1832.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:02:16.387 [debug] QUERY OK source="sources" db=0.1ms idle=1832.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:16.387 [debug] QUERY OK source="media_items" db=0.4ms idle=1832.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-08 12:00:21Z], 10] 11:02:16.388 [debug] QUERY OK source="media_items" db=0.7ms idle=1419.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The video many have asked for; the full explanation of my \"free hot water\" set up, using a heat exchanger and a closed loop glycol system. A passive system that takes advantage of the fact that you are driving anyway. Why not harness that wasted energy to make hot water every time you drive!\n#onahumbleroad\n#customvanbuild", "Make hot water in your van, while you drive!", "2dfab819-afe1-4e38-b97c-e7526ffc8912", 10, [], 707, false, "xTFbJQTjEa8", "https://www.youtube.com/watch?v=xTFbJQTjEa8", 98, "/downloads/Vanlife/2021-08-08 Make hot water in your van, while you drive!/Make hot water in your van, while you drive! [xTFbJQTjEa8].mp4", false, false, false, 1, ~U[2021-08-08 12:00:21Z], ~U[2026-07-11 15:02:16Z], ~U[2026-07-11 15:02:16Z], "The video many have asked for; the full explanation of my \"free hot water\" set up, using a heat exchanger and a closed loop glycol system. A passive system that takes advantage of the fact that you are driving anyway. Why not harness that wasted energy to make hot water every time you drive!\n#onahumbleroad\n#customvanbuild", "Make hot water in your van, while you drive!", 10, 707, false, "xTFbJQTjEa8", "https://www.youtube.com/watch?v=xTFbJQTjEa8", "/downloads/Vanlife/2021-08-08 Make hot water in your van, while you drive!/Make hot water in your van, while you drive! [xTFbJQTjEa8].mp4", false, ~U[2021-08-08 12:00:21Z]] 11:02:16.389 [debug] QUERY OK source="sources" db=0.2ms idle=419.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:16.389 [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] 11:02:16.390 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10270] 11:02:16.390 [debug] Current batch of media processed. Will check again in 1000ms 11:02:17.390 [debug] Current batch of media processed. Will check again in 1000ms 11:02:18.391 [debug] Current batch of media processed. Will check again in 1000ms 11:02:19.392 [debug] Current batch of media processed. Will check again in 1000ms 11:02:20.393 [debug] Current batch of media processed. Will check again in 1000ms 11:02:21.394 [debug] Current batch of media processed. Will check again in 1000ms 11:02:22.395 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "A masterclass teaching moment for those who want to use 8020 extruded aluminum in their camper van build. This segment dives into the most common fittings. The why, how and where they are used. Explained by George Mauro of Humble Road, LLC\n#onahumbleroad #8020", "duration" => 1684, "filename" => "/downloads/Vanlife/2025-10-26 Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road/Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road [7uO2mWpkNBg].mp4", "id" => "7uO2mWpkNBg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7uO2mWpkNBg", "playlist_index" => 99, "timestamp" => 1761480014, "title" => "Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road", "upload_date" => "20251026"} 11:02:22.396 [debug] QUERY OK source="sources" db=0.1ms idle=841.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:02:22.396 [debug] QUERY OK source="sources" db=0.1ms idle=841.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:22.397 [debug] QUERY OK source="media_items" db=0.4ms idle=841.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-26 12:00:14Z], 10] 11:02:22.397 [debug] QUERY OK source="media_items" db=0.6ms idle=842.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A masterclass teaching moment for those who want to use 8020 extruded aluminum in their camper van build. This segment dives into the most common fittings. The why, how and where they are used. Explained by George Mauro of Humble Road, LLC\n#onahumbleroad #8020", "Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road", "231d10ba-275f-442a-bc7d-97c744dac32b", 10, [], 1684, false, "7uO2mWpkNBg", "https://www.youtube.com/watch?v=7uO2mWpkNBg", 99, "/downloads/Vanlife/2025-10-26 Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road/Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road [7uO2mWpkNBg].mp4", false, false, false, 1, ~U[2025-10-26 12:00:14Z], ~U[2026-07-11 15:02:22Z], ~U[2026-07-11 15:02:22Z], "A masterclass teaching moment for those who want to use 8020 extruded aluminum in their camper van build. This segment dives into the most common fittings. The why, how and where they are used. Explained by George Mauro of Humble Road, LLC\n#onahumbleroad #8020", "Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road", 10, 1684, false, "7uO2mWpkNBg", "https://www.youtube.com/watch?v=7uO2mWpkNBg", "/downloads/Vanlife/2025-10-26 Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road/Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road [7uO2mWpkNBg].mp4", false, ~U[2025-10-26 12:00:14Z]] 11:02:22.398 [debug] QUERY OK source="sources" db=0.1ms idle=422.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:22.398 [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] 11:02:22.398 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10272] 11:02:22.399 [debug] Current batch of media processed. Will check again in 1000ms 11:02:23.399 [debug] Current batch of media processed. Will check again in 1000ms 11:02:24.400 [debug] Current batch of media processed. Will check again in 1000ms 11:02:25.401 [debug] Current batch of media processed. Will check again in 1000ms 11:02:26.402 [debug] Current batch of media processed. Will check again in 1000ms 11:02:27.403 [debug] Current batch of media processed. Will check again in 1000ms 11:02:28.404 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "After years of working with 8020 extruded aluminum profiles, I have developed a few valuable tricks to make the build go smoother and create a better result. If you are working with 8020, this is the most important video you will ever watch. Trust me... 😊\n\nLINK TO THE GOOD TOOLS on the Humble Road website:\nhttps://www.humbleroad.tv/amazon-affiliate\n___________________________________\nYeah Yeah by Audionautix is licensed under a Creative Commons Attribution 4.0 license. https://creativecommons.org/licenses/by/4.0/\nArtist: http://audionautix.com/\n@humbleroad #onahumbleroad #customvanbuild #8020", "duration" => 1480, "filename" => "/downloads/Vanlife/2022-10-16 8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build/8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build [AKssPWSYZwg].mp4", "id" => "AKssPWSYZwg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AKssPWSYZwg", "playlist_index" => 100, "timestamp" => 1665921606, "title" => "8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build", "upload_date" => "20221016"} 11:02:28.405 [debug] QUERY OK source="sources" db=0.1ms idle=850.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:02:28.405 [debug] QUERY OK source="sources" db=0.1ms idle=850.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:28.405 [debug] QUERY OK source="media_items" db=0.4ms idle=850.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-10-16 12:00:06Z], 10] 11:02:28.406 [debug] QUERY OK source="media_items" db=0.7ms idle=851.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["After years of working with 8020 extruded aluminum profiles, I have developed a few valuable tricks to make the build go smoother and create a better result. If you are working with 8020, this is the most important video you will ever watch. Trust me... 😊\n\nLINK TO THE GOOD TOOLS on the Humble Road website:\nhttps://www.humbleroad.tv/amazon-affiliate\n___________________________________\nYeah Yeah by Audionautix is licensed under a Creative Commons Attribution 4.0 license. https://creativecommons.org/licenses/by/4.0/\nArtist: http://audionautix.com/\n@humbleroad #onahumbleroad #customvanbuild #8020", "8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build", "5b271f90-945e-4caf-b055-d1fda174a2e8", 10, [], 1480, false, "AKssPWSYZwg", "https://www.youtube.com/watch?v=AKssPWSYZwg", 100, "/downloads/Vanlife/2022-10-16 8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build/8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build [AKssPWSYZwg].mp4", false, false, false, 1, ~U[2022-10-16 12:00:06Z], ~U[2026-07-11 15:02:28Z], ~U[2026-07-11 15:02:28Z], "After years of working with 8020 extruded aluminum profiles, I have developed a few valuable tricks to make the build go smoother and create a better result. If you are working with 8020, this is the most important video you will ever watch. Trust me... 😊\n\nLINK TO THE GOOD TOOLS on the Humble Road website:\nhttps://www.humbleroad.tv/amazon-affiliate\n___________________________________\nYeah Yeah by Audionautix is licensed under a Creative Commons Attribution 4.0 license. https://creativecommons.org/licenses/by/4.0/\nArtist: http://audionautix.com/\n@humbleroad #onahumbleroad #customvanbuild #8020", "8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build", 10, 1480, false, "AKssPWSYZwg", "https://www.youtube.com/watch?v=AKssPWSYZwg", "/downloads/Vanlife/2022-10-16 8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build/8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build [AKssPWSYZwg].mp4", false, ~U[2022-10-16 12:00:06Z]] 11:02:28.407 [debug] QUERY OK source="sources" db=0.1ms idle=424.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:28.407 [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] 11:02:28.407 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10274] 11:02:28.408 [debug] Current batch of media processed. Will check again in 1000ms 11:02:29.408 [debug] Current batch of media processed. Will check again in 1000ms 11:02:30.409 [debug] Current batch of media processed. Will check again in 1000ms 11:02:30.485 [info] {"source":"oban","duration":621,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:02:31.410 [debug] Current batch of media processed. Will check again in 1000ms 11:02:32.411 [debug] Current batch of media processed. Will check again in 1000ms 11:02:33.412 [debug] Current batch of media processed. Will check again in 1000ms 11:02:34.413 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Many people romanticize the thought of a long hot shower in their van. While it is absolutely possible, the actual day to day reality of a recirculating shower may turn your thoughts elsewhere. Having to change or wash dirty disgusting filters is one reason. Understanding exactly how ineffective these systems are in terms of bacteria and health is another. In van life, a long hot shower is easily enjoyed any time anywhere in the country with a gym membership. Use the van shower for the convenience of a good clean quick shower. And don't forget to subscribe for more innovative design ideas for your van build.\n\n#customvanbuild\n#onahumbleroad", "duration" => 268, "filename" => "/downloads/Vanlife/2021-08-25 Recirculating shower in a van? Just my humble opinion..#/Recirculating shower in a van? Just my humble opinion... [JIgRLKiRjhw].mp4", "id" => "JIgRLKiRjhw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JIgRLKiRjhw", "playlist_index" => 101, "timestamp" => 1629892808, "title" => "Recirculating shower in a van? Just my humble opinion...", "upload_date" => "20210825"} 11:02:34.414 [debug] QUERY OK source="sources" db=0.1ms idle=859.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:02:34.414 [debug] QUERY OK source="sources" db=0.1ms idle=859.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:34.414 [debug] QUERY OK source="media_items" db=0.3ms idle=859.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-25 12:00:08Z], 10] 11:02:34.415 [debug] QUERY OK source="media_items" db=0.8ms idle=860.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Many people romanticize the thought of a long hot shower in their van. While it is absolutely possible, the actual day to day reality of a recirculating shower may turn your thoughts elsewhere. Having to change or wash dirty disgusting filters is one reason. Understanding exactly how ineffective these systems are in terms of bacteria and health is another. In van life, a long hot shower is easily enjoyed any time anywhere in the country with a gym membership. Use the van shower for the convenience of a good clean quick shower. And don't forget to subscribe for more innovative design ideas for your van build.\n\n#customvanbuild\n#onahumbleroad", "Recirculating shower in a van? Just my humble opinion...", "1812ee21-3b41-4ab4-9c19-a27a551f049d", 10, [], 268, false, "JIgRLKiRjhw", "https://www.youtube.com/watch?v=JIgRLKiRjhw", 101, "/downloads/Vanlife/2021-08-25 Recirculating shower in a van? Just my humble opinion..#/Recirculating shower in a van? Just my humble opinion... [JIgRLKiRjhw].mp4", false, false, false, 1, ~U[2021-08-25 12:00:08Z], ~U[2026-07-11 15:02:34Z], ~U[2026-07-11 15:02:34Z], "Many people romanticize the thought of a long hot shower in their van. While it is absolutely possible, the actual day to day reality of a recirculating shower may turn your thoughts elsewhere. Having to change or wash dirty disgusting filters is one reason. Understanding exactly how ineffective these systems are in terms of bacteria and health is another. In van life, a long hot shower is easily enjoyed any time anywhere in the country with a gym membership. Use the van shower for the convenience of a good clean quick shower. And don't forget to subscribe for more innovative design ideas for your van build.\n\n#customvanbuild\n#onahumbleroad", "Recirculating shower in a van? Just my humble opinion...", 10, 268, false, "JIgRLKiRjhw", "https://www.youtube.com/watch?v=JIgRLKiRjhw", "/downloads/Vanlife/2021-08-25 Recirculating shower in a van? Just my humble opinion..#/Recirculating shower in a van? Just my humble opinion... [JIgRLKiRjhw].mp4", false, ~U[2021-08-25 12:00:08Z]] 11:02:34.416 [debug] QUERY OK source="sources" db=0.2ms idle=427.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:34.416 [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] 11:02:34.416 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10276] 11:02:34.417 [debug] Current batch of media processed. Will check again in 1000ms 11:02:35.417 [debug] Current batch of media processed. Will check again in 1000ms 11:02:36.418 [debug] Current batch of media processed. Will check again in 1000ms 11:02:37.419 [debug] Current batch of media processed. Will check again in 1000ms 11:02:38.420 [debug] Current batch of media processed. Will check again in 1000ms 11:02:39.421 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The Humble Road custom bed lift is ready for prime time! Van life will never be the same!\n\n#onahumbleroad #customtransitvan #customvanbuild", "duration" => 618, "filename" => "/downloads/Vanlife/2025-09-14 Humble Road custom BED LIFT and a Japanese shower all in one van!/Humble Road custom BED LIFT and a Japanese shower all in one van! [9PaUTwXo0K8].mp4", "id" => "9PaUTwXo0K8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9PaUTwXo0K8", "playlist_index" => 102, "timestamp" => 1757851214, "title" => "Humble Road custom BED LIFT and a Japanese shower all in one van!", "upload_date" => "20250914"} 11:02:39.421 [debug] QUERY OK source="sources" db=0.1ms idle=1867.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:02:39.422 [debug] QUERY OK source="sources" db=0.1ms idle=1867.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:39.422 [debug] QUERY OK source="media_items" db=0.4ms idle=1867.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-14 12:00:14Z], 10] 11:02:39.424 [debug] QUERY OK source="media_items" db=1.1ms idle=1429.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Humble Road custom bed lift is ready for prime time! Van life will never be the same!\n\n#onahumbleroad #customtransitvan #customvanbuild", "Humble Road custom BED LIFT and a Japanese shower all in one van!", "c0cc6054-e64d-4367-88c6-29dacd020d03", 10, [], 618, false, "9PaUTwXo0K8", "https://www.youtube.com/watch?v=9PaUTwXo0K8", 102, "/downloads/Vanlife/2025-09-14 Humble Road custom BED LIFT and a Japanese shower all in one van!/Humble Road custom BED LIFT and a Japanese shower all in one van! [9PaUTwXo0K8].mp4", false, false, false, 1, ~U[2025-09-14 12:00:14Z], ~U[2026-07-11 15:02:39Z], ~U[2026-07-11 15:02:39Z], "The Humble Road custom bed lift is ready for prime time! Van life will never be the same!\n\n#onahumbleroad #customtransitvan #customvanbuild", "Humble Road custom BED LIFT and a Japanese shower all in one van!", 10, 618, false, "9PaUTwXo0K8", "https://www.youtube.com/watch?v=9PaUTwXo0K8", "/downloads/Vanlife/2025-09-14 Humble Road custom BED LIFT and a Japanese shower all in one van!/Humble Road custom BED LIFT and a Japanese shower all in one van! [9PaUTwXo0K8].mp4", false, ~U[2025-09-14 12:00:14Z]] 11:02:39.424 [debug] QUERY OK source="sources" db=0.1ms idle=430.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:39.424 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:02:39.425 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10278] 11:02:39.425 [debug] Current batch of media processed. Will check again in 1000ms 11:02:40.425 [debug] Current batch of media processed. Will check again in 1000ms 11:02:41.426 [debug] Current batch of media processed. Will check again in 1000ms 11:02:42.427 [debug] Current batch of media processed. Will check again in 1000ms 11:02:43.428 [debug] Current batch of media processed. Will check again in 1000ms 11:02:44.429 [debug] Current batch of media processed. Will check again in 1000ms 11:02:45.430 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The Humble Road custom van studio will always use a custom made stainless steel shower pan with multiple drain points. But the real fun begins when the team dreams up the boardwalk that inserts into the shower pan. Conventional in never considered.\n\n\n#onahumbleroad #showerpan #customvanbuild", "duration" => 577, "filename" => "/downloads/Vanlife/2025-12-07 SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio#/SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio. [kcqGJd5fZW0].mp4", "id" => "kcqGJd5fZW0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kcqGJd5fZW0", "playlist_index" => 103, "timestamp" => 1765112485, "title" => "SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio.", "upload_date" => "20251207"} 11:02:45.430 [debug] QUERY OK source="sources" db=0.1ms idle=876.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:02:45.431 [debug] QUERY OK source="sources" db=0.1ms idle=876.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:45.431 [debug] QUERY OK source="media_items" db=0.4ms idle=876.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-07 13:01:25Z], 10] 11:02:45.433 [debug] QUERY OK source="media_items" db=1.1ms idle=877.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Humble Road custom van studio will always use a custom made stainless steel shower pan with multiple drain points. But the real fun begins when the team dreams up the boardwalk that inserts into the shower pan. Conventional in never considered.\n\n\n#onahumbleroad #showerpan #customvanbuild", "SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio.", "ca798e4d-fc99-4338-ae6c-b33bfb19d70a", 10, [], 577, false, "kcqGJd5fZW0", "https://www.youtube.com/watch?v=kcqGJd5fZW0", 103, "/downloads/Vanlife/2025-12-07 SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio#/SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio. [kcqGJd5fZW0].mp4", false, false, false, 1, ~U[2025-12-07 13:01:25Z], ~U[2026-07-11 15:02:45Z], ~U[2026-07-11 15:02:45Z], "The Humble Road custom van studio will always use a custom made stainless steel shower pan with multiple drain points. But the real fun begins when the team dreams up the boardwalk that inserts into the shower pan. Conventional in never considered.\n\n\n#onahumbleroad #showerpan #customvanbuild", "SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio.", 10, 577, false, "kcqGJd5fZW0", "https://www.youtube.com/watch?v=kcqGJd5fZW0", "/downloads/Vanlife/2025-12-07 SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio#/SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio. [kcqGJd5fZW0].mp4", false, ~U[2025-12-07 13:01:25Z]] 11:02:45.433 [debug] QUERY OK source="sources" db=0.1ms idle=432.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:45.433 [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] 11:02:45.434 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10280] 11:02:45.434 [debug] Current batch of media processed. Will check again in 1000ms 11:02:46.434 [debug] Current batch of media processed. Will check again in 1000ms 11:02:47.435 [debug] Current batch of media processed. Will check again in 1000ms 11:02:48.436 [debug] Current batch of media processed. Will check again in 1000ms 11:02:49.437 [debug] Current batch of media processed. Will check again in 1000ms 11:02:50.438 [debug] Current batch of media processed. Will check again in 1000ms 11:02:51.439 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In the first of a series, George explains best practices for installing a water heater in your van.\n\n#onahumbleroad #plumbinginyourvan #customvanbuild", "duration" => 1049, "filename" => "/downloads/Vanlife/2025-11-16 Pro tips on installing a water heater in your van#/Pro tips on installing a water heater in your van. [0ws1xNKIVls].mp4", "id" => "0ws1xNKIVls", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0ws1xNKIVls", "playlist_index" => 104, "timestamp" => 1763298005, "title" => "Pro tips on installing a water heater in your van.", "upload_date" => "20251116"} 11:02:51.439 [debug] QUERY OK source="sources" db=0.2ms idle=885.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:02:51.440 [debug] QUERY OK source="sources" db=0.1ms idle=885.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:51.440 [debug] QUERY OK source="media_items" db=0.4ms idle=885.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-16 13:00:05Z], 10] 11:02:51.441 [debug] QUERY OK source="media_items" db=0.4ms idle=886.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In the first of a series, George explains best practices for installing a water heater in your van.\n\n#onahumbleroad #plumbinginyourvan #customvanbuild", "Pro tips on installing a water heater in your van.", "44df5264-e566-40bf-92ea-e8bee48eaccc", 10, [], 1049, false, "0ws1xNKIVls", "https://www.youtube.com/watch?v=0ws1xNKIVls", 104, "/downloads/Vanlife/2025-11-16 Pro tips on installing a water heater in your van#/Pro tips on installing a water heater in your van. [0ws1xNKIVls].mp4", false, false, false, 1, ~U[2025-11-16 13:00:05Z], ~U[2026-07-11 15:02:51Z], ~U[2026-07-11 15:02:51Z], "In the first of a series, George explains best practices for installing a water heater in your van.\n\n#onahumbleroad #plumbinginyourvan #customvanbuild", "Pro tips on installing a water heater in your van.", 10, 1049, false, "0ws1xNKIVls", "https://www.youtube.com/watch?v=0ws1xNKIVls", "/downloads/Vanlife/2025-11-16 Pro tips on installing a water heater in your van#/Pro tips on installing a water heater in your van. [0ws1xNKIVls].mp4", false, ~U[2025-11-16 13:00:05Z]] 11:02:51.442 [debug] QUERY OK source="sources" db=0.2ms idle=434.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:51.442 [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] 11:02:51.442 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10282] 11:02:51.442 [debug] Current batch of media processed. Will check again in 1000ms 11:02:52.443 [debug] Current batch of media processed. Will check again in 1000ms 11:02:53.444 [debug] Current batch of media processed. Will check again in 1000ms 11:02:54.445 [debug] Current batch of media processed. Will check again in 1000ms 11:02:55.446 [debug] Current batch of media processed. Will check again in 1000ms 11:02:56.447 [debug] Current batch of media processed. Will check again in 1000ms 11:02:57.448 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Discussion of van construction using wood vs 8020 (extruded aluminum).\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nDrop-in Electrical and Plumbing Systems:\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n=============================================================\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n=============================================================\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n=============================================================\nUpper Cabinet Tips Video: https://youtu.be/4uIwZMStO7Y?si=0nHNC-v6TlitZ57N\n=============================================================\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1681, "filename" => "/downloads/Vanlife/2024-04-07 Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips/Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips [ELhWLoCdG8o].mkv", "id" => "ELhWLoCdG8o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ELhWLoCdG8o", "playlist_index" => 105, "timestamp" => 1712491210, "title" => "Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips", "upload_date" => "20240407"} 11:02:57.449 [debug] QUERY OK source="sources" db=0.2ms idle=894.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:02:57.449 [debug] QUERY OK source="sources" db=0.0ms idle=894.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:57.449 [debug] QUERY OK source="media_items" db=0.3ms idle=894.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-07 12:00:10Z], 10] 11:02:57.454 [debug] QUERY OK source="media_items" db=3.6ms idle=895.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Discussion of van construction using wood vs 8020 (extruded aluminum).\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nDrop-in Electrical and Plumbing Systems:\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n=============================================================\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n=============================================================\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n=============================================================\nUpper Cabinet Tips Video: https://youtu.be/4uIwZMStO7Y?si=0nHNC-v6TlitZ57N\n=============================================================\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips", "3b05f915-63d8-4684-98c9-7b2be1dcb8f7", 10, [], 1681, false, "ELhWLoCdG8o", "https://www.youtube.com/watch?v=ELhWLoCdG8o", 105, "/downloads/Vanlife/2024-04-07 Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips/Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips [ELhWLoCdG8o].mkv", false, false, false, 1, ~U[2024-04-07 12:00:10Z], ~U[2026-07-11 15:02:57Z], ~U[2026-07-11 15:02:57Z], "Discussion of van construction using wood vs 8020 (extruded aluminum).\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nDrop-in Electrical and Plumbing Systems:\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n=============================================================\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n=============================================================\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n=============================================================\nUpper Cabinet Tips Video: https://youtu.be/4uIwZMStO7Y?si=0nHNC-v6TlitZ57N\n=============================================================\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips", 10, 1681, false, "ELhWLoCdG8o", "https://www.youtube.com/watch?v=ELhWLoCdG8o", "/downloads/Vanlife/2024-04-07 Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips/Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips [ELhWLoCdG8o].mkv", false, ~U[2024-04-07 12:00:10Z]] 11:02:57.454 [debug] QUERY OK source="sources" db=0.1ms idle=440.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:02:57.454 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:02:57.454 [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 [10285] 11:02:57.455 [debug] Current batch of media processed. Will check again in 1000ms 11:02:58.455 [debug] Current batch of media processed. Will check again in 1000ms 11:02:59.456 [debug] Current batch of media processed. Will check again in 1000ms 11:03:00.207 [info] {"source":"oban","duration":139,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:03:00.457 [debug] Current batch of media processed. Will check again in 1000ms 11:03:00.485 [info] {"source":"oban","duration":555,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:03:01.458 [debug] Current batch of media processed. Will check again in 1000ms 11:03:02.459 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We share our top tips for building van upper cabinets using extruded aluminum (8020).\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n=============================================================================\nWhere we buy our extruded aluminum bars and hardware: \nhttps://tinyurl.com/24m52thp\n=============================================================================\n5/32\" Allen Wrench: https://amzn.to/3vdfnOk\n=============================================================================\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n=============================================================================\nWatch this video next. Van tour of our latest build: https://youtu.be/NGxf-97JO5M?si=OnB4kp3Qj4kyvHs9\n=============================================================================\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n=============================================================================\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n=============================================================================\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n=============================================================================\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n=============================================================================\nABOUT\nWe share all our tips and tricks for building upper cabinets using extruded aluminum (8020).\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n0:00 Intro\n0:30 Extrusions we use\n2:15 Fasteners we use\n7:55 Attaching cabinet to van\n10:07 Lining the cabinets\n12:58 Utrusta Hinges\n17:42 Where we buy extruded aluminum\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1181, "filename" => "/downloads/Vanlife/2024-03-17 Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum)/Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum) [4uIwZMStO7Y].mkv", "id" => "4uIwZMStO7Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4uIwZMStO7Y", "playlist_index" => 106, "timestamp" => 1710676805, "title" => "Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum)", "upload_date" => "20240317"} 11:03:02.460 [debug] QUERY OK source="sources" db=0.1ms idle=1905.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:03:02.460 [debug] QUERY OK source="sources" db=0.1ms idle=1443.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:02.460 [debug] QUERY OK source="media_items" db=0.4ms idle=906.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-17 12:00:05Z], 10] 11:03:02.463 [debug] QUERY OK source="media_items" db=2.0ms idle=906.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We share our top tips for building van upper cabinets using extruded aluminum (8020).\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n=============================================================================\nWhere we buy our extruded aluminum bars and hardware: \nhttps://tinyurl.com/24m52thp\n=============================================================================\n5/32\" Allen Wrench: https://amzn.to/3vdfnOk\n=============================================================================\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n=============================================================================\nWatch this video next. Van tour of our latest build: https://youtu.be/NGxf-97JO5M?si=OnB4kp3Qj4kyvHs9\n=============================================================================\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n=============================================================================\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n=============================================================================\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n=============================================================================\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n=============================================================================\nABOUT\nWe share all our tips and tricks for building upper cabinets using extruded aluminum (8020).\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n0:00 Intro\n0:30 Extrusions we use\n2:15 Fasteners we use\n7:55 Attaching cabinet to van\n10:07 Lining the cabinets\n12:58 Utrusta Hinges\n17:42 Where we buy extruded aluminum\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum)", "0d506867-68b6-43b6-9e78-0746f7261ec7", 10, [], 1181, false, "4uIwZMStO7Y", "https://www.youtube.com/watch?v=4uIwZMStO7Y", 106, "/downloads/Vanlife/2024-03-17 Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum)/Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum) [4uIwZMStO7Y].mkv", false, false, false, 1, ~U[2024-03-17 12:00:05Z], ~U[2026-07-11 15:03:02Z], ~U[2026-07-11 15:03:02Z], "We share our top tips for building van upper cabinets using extruded aluminum (8020).\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n=============================================================================\nWhere we buy our extruded aluminum bars and hardware: \nhttps://tinyurl.com/24m52thp\n=============================================================================\n5/32\" Allen Wrench: https://amzn.to/3vdfnOk\n=============================================================================\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n=============================================================================\nWatch this video next. Van tour of our latest build: https://youtu.be/NGxf-97JO5M?si=OnB4kp3Qj4kyvHs9\n=============================================================================\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n=============================================================================\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n=============================================================================\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n=============================================================================\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n=============================================================================\nABOUT\nWe share all our tips and tricks for building upper cabinets using extruded aluminum (8020).\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n0:00 Intro\n0:30 Extrusions we use\n2:15 Fasteners we use\n7:55 Attaching cabinet to van\n10:07 Lining the cabinets\n12:58 Utrusta Hinges\n17:42 Where we buy extruded aluminum\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum)", 10, 1181, false, "4uIwZMStO7Y", "https://www.youtube.com/watch?v=4uIwZMStO7Y", "/downloads/Vanlife/2024-03-17 Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum)/Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum) [4uIwZMStO7Y].mkv", false, ~U[2024-03-17 12:00:05Z]] 11:03:02.463 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:02.464 [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] 11:03:02.464 [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 [10286] 11:03:02.464 [debug] Current batch of media processed. Will check again in 1000ms 11:03:03.465 [debug] Current batch of media processed. Will check again in 1000ms 11:03:04.466 [debug] Current batch of media processed. Will check again in 1000ms 11:03:05.467 [debug] Current batch of media processed. Will check again in 1000ms 11:03:06.468 [debug] Current batch of media processed. Will check again in 1000ms 11:03:07.469 [debug] Current batch of media processed. Will check again in 1000ms 11:03:08.470 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video we do a deep dive into electrical and plumbing systems for van conversions.\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nDROP-IN ELECTRICAL & PLUMBING SYSTEMS: https://www.thrivecraftedvans.com/drop-in-electrical-system\n\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 2050, "filename" => "/downloads/Vanlife/2026-05-10 Camper Van Electrical and Plumbing System Guide/Camper Van Electrical and Plumbing System Guide [jBHUjmEHuQM].mkv", "id" => "jBHUjmEHuQM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jBHUjmEHuQM", "playlist_index" => 107, "timestamp" => 1778420964, "title" => "Camper Van Electrical and Plumbing System Guide", "upload_date" => "20260510"} 11:03:08.471 [debug] QUERY OK source="sources" db=0.1ms idle=916.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:03:08.471 [debug] QUERY OK source="sources" db=0.1ms idle=916.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:08.471 [debug] QUERY OK source="media_items" db=0.3ms idle=916.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-10 13:49:24Z], 10] 11:03:08.475 [debug] QUERY OK source="media_items" db=3.1ms idle=917.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we do a deep dive into electrical and plumbing systems for van conversions.\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nDROP-IN ELECTRICAL & PLUMBING SYSTEMS: https://www.thrivecraftedvans.com/drop-in-electrical-system\n\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Camper Van Electrical and Plumbing System Guide", "0af594d5-6ec2-45bd-b2d6-184b51e71fd1", 10, [], 2050, false, "jBHUjmEHuQM", "https://www.youtube.com/watch?v=jBHUjmEHuQM", 107, "/downloads/Vanlife/2026-05-10 Camper Van Electrical and Plumbing System Guide/Camper Van Electrical and Plumbing System Guide [jBHUjmEHuQM].mkv", false, false, false, 1, ~U[2026-05-10 13:49:24Z], ~U[2026-07-11 15:03:08Z], ~U[2026-07-11 15:03:08Z], "In this video we do a deep dive into electrical and plumbing systems for van conversions.\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nDROP-IN ELECTRICAL & PLUMBING SYSTEMS: https://www.thrivecraftedvans.com/drop-in-electrical-system\n\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Camper Van Electrical and Plumbing System Guide", 10, 2050, false, "jBHUjmEHuQM", "https://www.youtube.com/watch?v=jBHUjmEHuQM", "/downloads/Vanlife/2026-05-10 Camper Van Electrical and Plumbing System Guide/Camper Van Electrical and Plumbing System Guide [jBHUjmEHuQM].mkv", false, ~U[2026-05-10 13:49:24Z]] 11:03:08.475 [debug] QUERY OK source="sources" db=0.2ms idle=451.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:08.476 [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] 11:03:08.476 [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 [10288] 11:03:08.476 [debug] Current batch of media processed. Will check again in 1000ms 11:03:09.477 [debug] Current batch of media processed. Will check again in 1000ms 11:03:10.478 [debug] Current batch of media processed. Will check again in 1000ms 11:03:11.479 [debug] Current batch of media processed. Will check again in 1000ms 11:03:12.480 [debug] Current batch of media processed. Will check again in 1000ms 11:03:13.481 [debug] Current batch of media processed. Will check again in 1000ms 11:03:14.482 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Van flooring tips and tricks.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\nLonger description of video..........\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1009, "filename" => "/downloads/Vanlife/2025-05-17 What’s The Best Way To Install Van Flooring?/What’s The Best Way To Install Van Flooring? [-Pl_4HKEQxU].mkv", "id" => "-Pl_4HKEQxU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-Pl_4HKEQxU", "playlist_index" => 108, "timestamp" => 1747510835, "title" => "What’s The Best Way To Install Van Flooring?", "upload_date" => "20250517"} 11:03:14.483 [debug] QUERY OK source="sources" db=0.1ms idle=928.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:03:14.483 [debug] QUERY OK source="sources" db=0.0ms idle=928.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:14.483 [debug] QUERY OK source="media_items" db=0.3ms idle=929.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-17 19:40:35Z], 10] 11:03:14.485 [debug] QUERY OK source="media_items" db=1.4ms idle=929.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Van flooring tips and tricks.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\nLonger description of video..........\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "What’s The Best Way To Install Van Flooring?", "0f84efb7-c9f6-45ec-a664-39414317827d", 10, [], 1009, false, "-Pl_4HKEQxU", "https://www.youtube.com/watch?v=-Pl_4HKEQxU", 108, "/downloads/Vanlife/2025-05-17 What’s The Best Way To Install Van Flooring?/What’s The Best Way To Install Van Flooring? [-Pl_4HKEQxU].mkv", false, false, false, 1, ~U[2025-05-17 19:40:35Z], ~U[2026-07-11 15:03:14Z], ~U[2026-07-11 15:03:14Z], "Van flooring tips and tricks.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\nLonger description of video..........\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "What’s The Best Way To Install Van Flooring?", 10, 1009, false, "-Pl_4HKEQxU", "https://www.youtube.com/watch?v=-Pl_4HKEQxU", "/downloads/Vanlife/2025-05-17 What’s The Best Way To Install Van Flooring?/What’s The Best Way To Install Van Flooring? [-Pl_4HKEQxU].mkv", false, ~U[2025-05-17 19:40:35Z]] 11:03:14.486 [debug] QUERY OK source="sources" db=0.2ms idle=455.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:14.486 [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] 11:03:14.486 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10291] 11:03:14.486 [debug] Current batch of media processed. Will check again in 1000ms 11:03:15.487 [debug] Current batch of media processed. Will check again in 1000ms 11:03:16.488 [debug] Current batch of media processed. Will check again in 1000ms 11:03:17.489 [debug] Current batch of media processed. Will check again in 1000ms 11:03:18.490 [debug] Current batch of media processed. Will check again in 1000ms 11:03:19.491 [debug] Current batch of media processed. Will check again in 1000ms 11:03:20.492 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Which type of walls and ceiling material are best for a van build?\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nProducts mentioned in this video:\nShiplap: https://www.homedepot.com/p/ARAUCO-9-16-in-x-5-1-4-in-x-8-ft-Primed-Pine-Nickel-Gap-Ship-Lap-Board-6-Pieces-Per-Box-0028994/301688279\nMarine Adhesive: https://amzn.to/4d6yY3E\nSpray Adhesive: https://amzn.to/3UteXNI\nPin Nailer: https://amzn.to/3W6oRG4\nFabric we use: https://pantherrvproducts.com/marathon/\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\nLonger description of video..........\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1149, "filename" => "/downloads/Vanlife/2024-04-21 Van Walls and Ceilings | Pro Builder Shares Tips/Van Walls and Ceilings | Pro Builder Shares Tips [gXYaVpNbUOc].mkv", "id" => "gXYaVpNbUOc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gXYaVpNbUOc", "playlist_index" => 109, "timestamp" => 1713719867, "title" => "Van Walls and Ceilings | Pro Builder Shares Tips", "upload_date" => "20240421"} 11:03:20.493 [debug] QUERY OK source="sources" db=0.1ms idle=938.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:03:20.493 [debug] QUERY OK source="sources" db=0.0ms idle=938.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:20.493 [debug] QUERY OK source="media_items" db=0.4ms idle=938.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-21 17:17:47Z], 10] 11:03:20.495 [debug] QUERY OK source="media_items" db=1.4ms idle=939.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Which type of walls and ceiling material are best for a van build?\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nProducts mentioned in this video:\nShiplap: https://www.homedepot.com/p/ARAUCO-9-16-in-x-5-1-4-in-x-8-ft-Primed-Pine-Nickel-Gap-Ship-Lap-Board-6-Pieces-Per-Box-0028994/301688279\nMarine Adhesive: https://amzn.to/4d6yY3E\nSpray Adhesive: https://amzn.to/3UteXNI\nPin Nailer: https://amzn.to/3W6oRG4\nFabric we use: https://pantherrvproducts.com/marathon/\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\nLonger description of video..........\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Walls and Ceilings | Pro Builder Shares Tips", "647734c9-5140-4fbe-a807-35346a9a464c", 10, [], 1149, false, "gXYaVpNbUOc", "https://www.youtube.com/watch?v=gXYaVpNbUOc", 109, "/downloads/Vanlife/2024-04-21 Van Walls and Ceilings | Pro Builder Shares Tips/Van Walls and Ceilings | Pro Builder Shares Tips [gXYaVpNbUOc].mkv", false, false, false, 1, ~U[2024-04-21 17:17:47Z], ~U[2026-07-11 15:03:20Z], ~U[2026-07-11 15:03:20Z], "Which type of walls and ceiling material are best for a van build?\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nProducts mentioned in this video:\nShiplap: https://www.homedepot.com/p/ARAUCO-9-16-in-x-5-1-4-in-x-8-ft-Primed-Pine-Nickel-Gap-Ship-Lap-Board-6-Pieces-Per-Box-0028994/301688279\nMarine Adhesive: https://amzn.to/4d6yY3E\nSpray Adhesive: https://amzn.to/3UteXNI\nPin Nailer: https://amzn.to/3W6oRG4\nFabric we use: https://pantherrvproducts.com/marathon/\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\nLonger description of video..........\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Walls and Ceilings | Pro Builder Shares Tips", 10, 1149, false, "gXYaVpNbUOc", "https://www.youtube.com/watch?v=gXYaVpNbUOc", "/downloads/Vanlife/2024-04-21 Van Walls and Ceilings | Pro Builder Shares Tips/Van Walls and Ceilings | Pro Builder Shares Tips [gXYaVpNbUOc].mkv", false, ~U[2024-04-21 17:17:47Z]] 11:03:20.496 [debug] QUERY OK source="sources" db=0.1ms idle=459.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:20.496 [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] 11:03:20.496 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10292] 11:03:20.496 [debug] Current batch of media processed. Will check again in 1000ms 11:03:21.497 [debug] Current batch of media processed. Will check again in 1000ms 11:03:22.498 [debug] Current batch of media processed. Will check again in 1000ms 11:03:23.499 [debug] Current batch of media processed. Will check again in 1000ms 11:03:24.500 [debug] Current batch of media processed. Will check again in 1000ms 11:03:25.501 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Ecoflow vs. a component-based electrical system using Victron components.\nDIY VAN BUILD PRODUCTS: https://www.thrivecraftedvans.com/build-materials\n\n================================================================================\nCORRECTION: This Ecoflow model is rated at 3,600 watts AC output and the Victron Multiplus 3000 is rated at 2,400 continuous watts of output.\n================================================================================\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\nThrive Freeze dried food delivered to your door each month:\nhttps://www.shopthrivefood.com/ \n\n➳ CUSTOM VAN CONVERSION: https://www.thrivecraftedvans.com\n\n➳ FULL LIST OF VAN BUILD PRODUCTS: https://www.thrivecraftedvans.com/build-materials\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n🚐 Looking to buy a van or have us do a custom conversion on your van? https://www.thrivecraftedvans.com\n\nEXPLORIST\n@EXPLORISTlife \nhttps://explorist.life\n\nCHAPTERS\n1:15 Overview\n2:58 Battery Capacities Amp Hours vs. Watt Hours\n5:20 AC Output\n6:37 DC Output\n7:50 Running an Air Conditioner\n10:40 Alternator Charging\n13:53 Solar Charging\n14:55 Shore Power\n15:28 Pricing\n18:20 Best Bang for Your Buck\n18:43 DIY Friendliness\n19:40 Expandability\n20:25 Inexpensive Battery Options\n21:15 Drawbacks\n23:05 Customer Support\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive Life freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nABOUT\nIn this video we compare the Ecoflow and a component-based electrical system using Victron components and Battle Born batteries. Which system is best for your build? Watch to find out.\nDisclosures: Some links in the description are affiliate links. As an Amazon Associate we earn a small commission from qualifying purchases.\n\n➳ AUDIO/VIDEO GEAR\n• Main Camera- Canon R6 Mark ii: https://amzn.to/3zTPW3b\n• Main Lens- Canon RF 14-35mm f4: https://amzn.to/3zBErNG\n• Microphone- Rode Wireless Pro: https://amzn.to/3FxYmQr\n• Action Camera- DJI Osmo Action 4: https://amzn.to/409Focq\n• Drone- DJI Mini 4 Pro: https://amzn.to/3QarQZu\n\n#vanlife #vanlayout #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1481, "filename" => "/downloads/Vanlife/2024-01-21 Watch Before Buying an Ecoflow: Ecoflow vs Victron/Watch Before Buying an Ecoflow: Ecoflow vs Victron [25nU2fnHknA].mkv", "id" => "25nU2fnHknA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=25nU2fnHknA", "playlist_index" => 110, "timestamp" => 1705849156, "title" => "Watch Before Buying an Ecoflow: Ecoflow vs Victron", "upload_date" => "20240121"} 11:03:25.502 [debug] QUERY OK source="sources" db=0.1ms idle=1947.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:03:25.502 [debug] QUERY OK source="sources" db=0.1ms idle=1947.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:25.503 [debug] QUERY OK source="media_items" db=0.4ms idle=1948.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-21 14:59:16Z], 10] 11:03:25.505 [debug] QUERY OK source="media_items" db=1.9ms idle=1462.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Ecoflow vs. a component-based electrical system using Victron components.\nDIY VAN BUILD PRODUCTS: https://www.thrivecraftedvans.com/build-materials\n\n================================================================================\nCORRECTION: This Ecoflow model is rated at 3,600 watts AC output and the Victron Multiplus 3000 is rated at 2,400 continuous watts of output.\n================================================================================\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\nThrive Freeze dried food delivered to your door each month:\nhttps://www.shopthrivefood.com/ \n\n➳ CUSTOM VAN CONVERSION: https://www.thrivecraftedvans.com\n\n➳ FULL LIST OF VAN BUILD PRODUCTS: https://www.thrivecraftedvans.com/build-materials\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n🚐 Looking to buy a van or have us do a custom conversion on your van? https://www.thrivecraftedvans.com\n\nEXPLORIST\n@EXPLORISTlife \nhttps://explorist.life\n\nCHAPTERS\n1:15 Overview\n2:58 Battery Capacities Amp Hours vs. Watt Hours\n5:20 AC Output\n6:37 DC Output\n7:50 Running an Air Conditioner\n10:40 Alternator Charging\n13:53 Solar Charging\n14:55 Shore Power\n15:28 Pricing\n18:20 Best Bang for Your Buck\n18:43 DIY Friendliness\n19:40 Expandability\n20:25 Inexpensive Battery Options\n21:15 Drawbacks\n23:05 Customer Support\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive Life freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nABOUT\nIn this video we compare the Ecoflow and a component-based electrical system using Victron components and Battle Born batteries. Which system is best for your build? Watch to find out.\nDisclosures: Some links in the description are affiliate links. As an Amazon Associate we earn a small commission from qualifying purchases.\n\n➳ AUDIO/VIDEO GEAR\n• Main Camera- Canon R6 Mark ii: https://amzn.to/3zTPW3b\n• Main Lens- Canon RF 14-35mm f4: https://amzn.to/3zBErNG\n• Microphone- Rode Wireless Pro: https://amzn.to/3FxYmQr\n• Action Camera- DJI Osmo Action 4: https://amzn.to/409Focq\n• Drone- DJI Mini 4 Pro: https://amzn.to/3QarQZu\n\n#vanlife #vanlayout #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Watch Before Buying an Ecoflow: Ecoflow vs Victron", "ee69626c-fd42-4553-8e3d-4cb7dd26f9f6", 10, [], 1481, false, "25nU2fnHknA", "https://www.youtube.com/watch?v=25nU2fnHknA", 110, "/downloads/Vanlife/2024-01-21 Watch Before Buying an Ecoflow: Ecoflow vs Victron/Watch Before Buying an Ecoflow: Ecoflow vs Victron [25nU2fnHknA].mkv", false, false, false, 1, ~U[2024-01-21 14:59:16Z], ~U[2026-07-11 15:03:25Z], ~U[2026-07-11 15:03:25Z], "Ecoflow vs. a component-based electrical system using Victron components.\nDIY VAN BUILD PRODUCTS: https://www.thrivecraftedvans.com/build-materials\n\n================================================================================\nCORRECTION: This Ecoflow model is rated at 3,600 watts AC output and the Victron Multiplus 3000 is rated at 2,400 continuous watts of output.\n================================================================================\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\nThrive Freeze dried food delivered to your door each month:\nhttps://www.shopthrivefood.com/ \n\n➳ CUSTOM VAN CONVERSION: https://www.thrivecraftedvans.com\n\n➳ FULL LIST OF VAN BUILD PRODUCTS: https://www.thrivecraftedvans.com/build-materials\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n🚐 Looking to buy a van or have us do a custom conversion on your van? https://www.thrivecraftedvans.com\n\nEXPLORIST\n@EXPLORISTlife \nhttps://explorist.life\n\nCHAPTERS\n1:15 Overview\n2:58 Battery Capacities Amp Hours vs. Watt Hours\n5:20 AC Output\n6:37 DC Output\n7:50 Running an Air Conditioner\n10:40 Alternator Charging\n13:53 Solar Charging\n14:55 Shore Power\n15:28 Pricing\n18:20 Best Bang for Your Buck\n18:43 DIY Friendliness\n19:40 Expandability\n20:25 Inexpensive Battery Options\n21:15 Drawbacks\n23:05 Customer Support\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive Life freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nABOUT\nIn this video we compare the Ecoflow and a component-based electrical system using Victron components and Battle Born batteries. Which system is best for your build? Watch to find out.\nDisclosures: Some links in the description are affiliate links. As an Amazon Associate we earn a small commission from qualifying purchases.\n\n➳ AUDIO/VIDEO GEAR\n• Main Camera- Canon R6 Mark ii: https://amzn.to/3zTPW3b\n• Main Lens- Canon RF 14-35mm f4: https://amzn.to/3zBErNG\n• Microphone- Rode Wireless Pro: https://amzn.to/3FxYmQr\n• Action Camera- DJI Osmo Action 4: https://amzn.to/409Focq\n• Drone- DJI Mini 4 Pro: https://amzn.to/3QarQZu\n\n#vanlife #vanlayout #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Watch Before Buying an Ecoflow: Ecoflow vs Victron", 10, 1481, false, "25nU2fnHknA", "https://www.youtube.com/watch?v=25nU2fnHknA", "/downloads/Vanlife/2024-01-21 Watch Before Buying an Ecoflow: Ecoflow vs Victron/ (truncated) 11:03:25.505 [debug] QUERY OK source="sources" db=0.2ms idle=463.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:25.506 [debug] QUERY OK source="media_profiles" db=0.0ms 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] 11:03:25.506 [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 [10294] 11:03:25.506 [debug] Current batch of media processed. Will check again in 1000ms 11:03:26.507 [debug] Current batch of media processed. Will check again in 1000ms 11:03:27.508 [debug] Current batch of media processed. Will check again in 1000ms 11:03:28.509 [debug] Current batch of media processed. Will check again in 1000ms 11:03:29.510 [debug] Current batch of media processed. Will check again in 1000ms 11:03:30.487 [info] {"source":"oban","duration":549,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:03:30.511 [debug] Current batch of media processed. Will check again in 1000ms 11:03:31.512 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1207, "filename" => "/downloads/Vanlife/2026-01-18 Van Electrical & Plumbing Setup. Updated for 2026#/Van Electrical & Plumbing Setup. Updated for 2026. [CpqIkR4Ep1s].mkv", "id" => "CpqIkR4Ep1s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CpqIkR4Ep1s", "playlist_index" => 111, "timestamp" => 1768744818, "title" => "Van Electrical & Plumbing Setup. Updated for 2026.", "upload_date" => "20260118"} 11:03:31.513 [debug] QUERY OK source="sources" db=0.1ms idle=1025.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:03:31.513 [debug] QUERY OK source="sources" db=0.0ms idle=958.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:31.513 [debug] QUERY OK source="media_items" db=0.4ms idle=958.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-18 14:00:18Z], 10] 11:03:31.520 [debug] QUERY OK source="media_items" db=6.4ms idle=959.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical & Plumbing Setup. Updated for 2026.", "82b3adeb-6870-4669-8c9d-529e84339b0d", 10, [], 1207, false, "CpqIkR4Ep1s", "https://www.youtube.com/watch?v=CpqIkR4Ep1s", 111, "/downloads/Vanlife/2026-01-18 Van Electrical & Plumbing Setup. Updated for 2026#/Van Electrical & Plumbing Setup. Updated for 2026. [CpqIkR4Ep1s].mkv", false, false, false, 1, ~U[2026-01-18 14:00:18Z], ~U[2026-07-11 15:03:31Z], ~U[2026-07-11 15:03:31Z], "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical & Plumbing Setup. Updated for 2026.", 10, 1207, false, "CpqIkR4Ep1s", "https://www.youtube.com/watch?v=CpqIkR4Ep1s", "/downloads/Vanlife/2026-01-18 Van Electrical & Plumbing Setup. Updated for 2026#/Van Electrical & Plumbing Setup. Updated for 2026. [CpqIkR4Ep1s].mkv", false, ~U[2026-01-18 14:00:18Z]] 11:03:31.521 [debug] QUERY OK source="sources" db=0.2ms idle=472.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:31.521 [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] 11:03:31.521 [debug] QUERY OK source="media_items" db=0.2ms idle=8.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10296] 11:03:31.521 [debug] Current batch of media processed. Will check again in 1000ms 11:03:32.522 [debug] Current batch of media processed. Will check again in 1000ms 11:03:33.523 [debug] Current batch of media processed. Will check again in 1000ms 11:03:34.524 [debug] Current batch of media processed. Will check again in 1000ms 11:03:35.525 [debug] Current batch of media processed. Will check again in 1000ms 11:03:36.526 [debug] Current batch of media processed. Will check again in 1000ms 11:03:37.527 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "How we get professional-looking paint finishes on our cabinetry.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nGRACO ULTRA QUICKSHOT: https://amzn.to/40Zbr0f\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1150, "filename" => "/downloads/Vanlife/2025-08-09 The Secret To Flawless Cabinet Painting!/The Secret To Flawless Cabinet Painting! [fKCwpCMO7aY].mkv", "id" => "fKCwpCMO7aY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fKCwpCMO7aY", "playlist_index" => 112, "timestamp" => 1754757737, "title" => "The Secret To Flawless Cabinet Painting!", "upload_date" => "20250809"} 11:03:37.527 [debug] QUERY OK source="sources" db=0.1ms idle=973.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:03:37.528 [debug] QUERY OK source="sources" db=0.1ms idle=973.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:37.528 [debug] QUERY OK source="media_items" db=0.4ms idle=973.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-09 16:42:17Z], 10] 11:03:37.530 [debug] QUERY OK source="media_items" db=0.8ms idle=974.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How we get professional-looking paint finishes on our cabinetry.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nGRACO ULTRA QUICKSHOT: https://amzn.to/40Zbr0f\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "The Secret To Flawless Cabinet Painting!", "8df43aa9-9c4d-49be-a6fa-9de22b43799a", 10, [], 1150, false, "fKCwpCMO7aY", "https://www.youtube.com/watch?v=fKCwpCMO7aY", 112, "/downloads/Vanlife/2025-08-09 The Secret To Flawless Cabinet Painting!/The Secret To Flawless Cabinet Painting! [fKCwpCMO7aY].mkv", false, false, false, 1, ~U[2025-08-09 16:42:17Z], ~U[2026-07-11 15:03:37Z], ~U[2026-07-11 15:03:37Z], "How we get professional-looking paint finishes on our cabinetry.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nGRACO ULTRA QUICKSHOT: https://amzn.to/40Zbr0f\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "The Secret To Flawless Cabinet Painting!", 10, 1150, false, "fKCwpCMO7aY", "https://www.youtube.com/watch?v=fKCwpCMO7aY", "/downloads/Vanlife/2025-08-09 The Secret To Flawless Cabinet Painting!/The Secret To Flawless Cabinet Painting! [fKCwpCMO7aY].mkv", false, ~U[2025-08-09 16:42:17Z]] 11:03:37.530 [debug] QUERY OK source="sources" db=0.1ms idle=475.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:37.530 [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] 11:03:37.530 [debug] QUERY OK source="media_items" db=0.1ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10298] 11:03:37.531 [debug] Current batch of media processed. Will check again in 1000ms 11:03:38.531 [debug] Current batch of media processed. Will check again in 1000ms 11:03:39.532 [debug] Current batch of media processed. Will check again in 1000ms 11:03:40.533 [debug] Current batch of media processed. Will check again in 1000ms 11:03:41.534 [debug] Current batch of media processed. Will check again in 1000ms 11:03:42.535 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "How to get a professional-looking finish in your van conversion.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nSAVE 15% OFF GOCODE PRODUCTS: https://gocodeoverland.com/discount/THRIVANSYT15\nDiscount Code: THRIVANSYT15\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 815, "filename" => "/downloads/Vanlife/2025-02-16 Achieving a Professional Finish in Your Van Build/Achieving a Professional Finish in Your Van Build [Joc6_u8xR-g].mkv", "id" => "Joc6_u8xR-g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Joc6_u8xR-g", "playlist_index" => 113, "timestamp" => 1739727739, "title" => "Achieving a Professional Finish in Your Van Build", "upload_date" => "20250216"} 11:03:42.536 [debug] QUERY OK source="sources" db=0.1ms idle=1981.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:03:42.536 [debug] QUERY OK source="sources" db=0.1ms idle=1981.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:42.537 [debug] QUERY OK source="media_items" db=0.5ms idle=1981.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-16 17:42:19Z], 10] 11:03:42.540 [debug] QUERY OK source="media_items" db=3.3ms idle=1478.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How to get a professional-looking finish in your van conversion.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nSAVE 15% OFF GOCODE PRODUCTS: https://gocodeoverland.com/discount/THRIVANSYT15\nDiscount Code: THRIVANSYT15\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Achieving a Professional Finish in Your Van Build", "1494bdc2-4b2b-44d7-8ef5-e709df02ae3c", 10, [], 815, false, "Joc6_u8xR-g", "https://www.youtube.com/watch?v=Joc6_u8xR-g", 113, "/downloads/Vanlife/2025-02-16 Achieving a Professional Finish in Your Van Build/Achieving a Professional Finish in Your Van Build [Joc6_u8xR-g].mkv", false, false, false, 1, ~U[2025-02-16 17:42:19Z], ~U[2026-07-11 15:03:42Z], ~U[2026-07-11 15:03:42Z], "How to get a professional-looking finish in your van conversion.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nSAVE 15% OFF GOCODE PRODUCTS: https://gocodeoverland.com/discount/THRIVANSYT15\nDiscount Code: THRIVANSYT15\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Achieving a Professional Finish in Your Van Build", 10, 815, false, "Joc6_u8xR-g", "https://www.youtube.com/watch?v=Joc6_u8xR-g", "/downloads/Vanlife/2025-02-16 Achieving a Professional Finish in Your Van Build/Achieving a Professional Finish in Your Van Build [Joc6_u8xR-g].mkv", false, ~U[2025-02-16 17:42:19Z]] 11:03:42.541 [debug] QUERY OK source="sources" db=0.1ms idle=481.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:42.541 [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] 11:03:42.541 [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 [10300] 11:03:42.541 [debug] Current batch of media processed. Will check again in 1000ms 11:03:43.542 [debug] Current batch of media processed. Will check again in 1000ms 11:03:44.543 [debug] Current batch of media processed. Will check again in 1000ms 11:03:45.544 [debug] Current batch of media processed. Will check again in 1000ms 11:03:46.545 [debug] Current batch of media processed. Will check again in 1000ms 11:03:47.546 [debug] Current batch of media processed. Will check again in 1000ms 11:03:48.547 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "This 4X4 Sprinter was custom built for a couple who spend half their time on the water and the other half touring the country in luxury. Humble Road listened carefully to the \"wants\" \"needs\" and \"must haves\" of this seasoned traveling couple. The result was a combination of failsafe systems, ease of use in their day to day life in a van, elegant design and workmanship.\n\n#onahumbleroad #sprintervan #customvanbuild", "duration" => 2406, "filename" => "/downloads/Vanlife/2025-04-27 New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features!/New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features! [YNvPM-an3N4].mp4", "id" => "YNvPM-an3N4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=YNvPM-an3N4", "playlist_index" => 114, "timestamp" => 1745755254, "title" => "New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features!", "upload_date" => "20250427"} 11:03:48.548 [debug] QUERY OK source="sources" db=0.1ms idle=993.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:03:48.548 [debug] QUERY OK source="sources" db=0.0ms idle=993.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:48.548 [debug] QUERY OK source="media_items" db=0.4ms idle=993.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-27 12:00:54Z], 10] 11:03:48.550 [debug] QUERY OK source="media_items" db=0.9ms idle=994.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This 4X4 Sprinter was custom built for a couple who spend half their time on the water and the other half touring the country in luxury. Humble Road listened carefully to the \"wants\" \"needs\" and \"must haves\" of this seasoned traveling couple. The result was a combination of failsafe systems, ease of use in their day to day life in a van, elegant design and workmanship.\n\n#onahumbleroad #sprintervan #customvanbuild", "New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features!", "96d0ae8f-d593-4b87-b406-9563f9be23fc", 10, [], 2406, false, "YNvPM-an3N4", "https://www.youtube.com/watch?v=YNvPM-an3N4", 114, "/downloads/Vanlife/2025-04-27 New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features!/New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features! [YNvPM-an3N4].mp4", false, false, false, 1, ~U[2025-04-27 12:00:54Z], ~U[2026-07-11 15:03:48Z], ~U[2026-07-11 15:03:48Z], "This 4X4 Sprinter was custom built for a couple who spend half their time on the water and the other half touring the country in luxury. Humble Road listened carefully to the \"wants\" \"needs\" and \"must haves\" of this seasoned traveling couple. The result was a combination of failsafe systems, ease of use in their day to day life in a van, elegant design and workmanship.\n\n#onahumbleroad #sprintervan #customvanbuild", "New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features!", 10, 2406, false, "YNvPM-an3N4", "https://www.youtube.com/watch?v=YNvPM-an3N4", "/downloads/Vanlife/2025-04-27 New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features!/New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features! [YNvPM-an3N4].mp4", false, ~U[2025-04-27 12:00:54Z]] 11:03:48.550 [debug] QUERY OK source="sources" db=0.1ms idle=484.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:48.550 [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] 11:03:48.551 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10302] 11:03:48.551 [debug] Current batch of media processed. Will check again in 1000ms 11:03:49.551 [debug] Current batch of media processed. Will check again in 1000ms 11:03:50.552 [debug] Current batch of media processed. Will check again in 1000ms 11:03:51.553 [debug] Current batch of media processed. Will check again in 1000ms 11:03:52.554 [debug] Current batch of media processed. Will check again in 1000ms 11:03:53.555 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The largest of our micro-camper vans, the Maxi-Me continues to develop into an awesome solo camper.\n\nMusic: https://www.purple-planet.com\n#onahumbleroad #maxi-mecampervan #customvanbuild #promastercampervan", "duration" => 1042, "filename" => "/downloads/Vanlife/2024-05-26 How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead#/How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead. [TJVk5wMd9e4].mp4", "id" => "TJVk5wMd9e4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=TJVk5wMd9e4", "playlist_index" => 115, "timestamp" => 1716724833, "title" => "How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead.", "upload_date" => "20240526"} 11:03:53.555 [debug] QUERY OK source="sources" db=0.1ms idle=484.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:03:53.556 [debug] QUERY OK source="sources" db=0.1ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:53.556 [debug] QUERY OK source="media_items" db=0.4ms idle=1.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-26 12:00:33Z], 10] 11:03:53.557 [debug] QUERY OK source="media_items" db=0.5ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The largest of our micro-camper vans, the Maxi-Me continues to develop into an awesome solo camper.\n\nMusic: https://www.purple-planet.com\n#onahumbleroad #maxi-mecampervan #customvanbuild #promastercampervan", "How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead.", "36b28aa7-fed7-46c3-9b7c-09b37e4ae586", 10, [], 1042, false, "TJVk5wMd9e4", "https://www.youtube.com/watch?v=TJVk5wMd9e4", 115, "/downloads/Vanlife/2024-05-26 How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead#/How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead. [TJVk5wMd9e4].mp4", false, false, false, 2, ~U[2024-05-26 12:00:33Z], ~U[2026-07-11 15:03:53Z], ~U[2026-07-11 15:03:53Z], "The largest of our micro-camper vans, the Maxi-Me continues to develop into an awesome solo camper.\n\nMusic: https://www.purple-planet.com\n#onahumbleroad #maxi-mecampervan #customvanbuild #promastercampervan", "How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead.", 10, 1042, false, "TJVk5wMd9e4", "https://www.youtube.com/watch?v=TJVk5wMd9e4", "/downloads/Vanlife/2024-05-26 How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead#/How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead. [TJVk5wMd9e4].mp4", false, ~U[2024-05-26 12:00:33Z]] 11:03:53.558 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:53.558 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:03:53.558 [debug] QUERY OK source="media_items" db=0.1ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10304] 11:03:53.558 [debug] Current batch of media processed. Will check again in 1000ms 11:03:54.559 [debug] Current batch of media processed. Will check again in 1000ms 11:03:55.560 [debug] Current batch of media processed. Will check again in 1000ms 11:03:56.561 [debug] Current batch of media processed. Will check again in 1000ms 11:03:57.562 [debug] Current batch of media processed. Will check again in 1000ms 11:03:58.563 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Once you have all the components necessary for your particular build, spend some time composing them into the area you have designated. Be aware of the need to service or replace these items in the future. Will you have to tear apart the entire area to get at one component? That would be a nightmare! And don't forget to subscribe for more innovative design ideas for your van build.\n\n#onahumbleroad\n#customvanbuild", "duration" => 389, "filename" => "/downloads/Vanlife/2021-08-22 When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely#/When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely. [Z2zDCHvMpZc].mp4", "id" => "Z2zDCHvMpZc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Z2zDCHvMpZc", "playlist_index" => 116, "timestamp" => 1629633613, "title" => "When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely.", "upload_date" => "20210822"} 11:03:58.563 [debug] QUERY OK source="sources" db=0.1ms idle=1009.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:03:58.564 [debug] QUERY OK source="sources" db=0.1ms idle=1009.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:58.564 [debug] QUERY OK source="media_items" db=0.3ms idle=1009.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-22 12:00:13Z], 10] 11:03:58.565 [debug] QUERY OK source="media_items" db=0.5ms idle=1010.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Once you have all the components necessary for your particular build, spend some time composing them into the area you have designated. Be aware of the need to service or replace these items in the future. Will you have to tear apart the entire area to get at one component? That would be a nightmare! And don't forget to subscribe for more innovative design ideas for your van build.\n\n#onahumbleroad\n#customvanbuild", "When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely.", "15a46a9c-0164-4d66-9f09-86ce935b6155", 10, [], 389, false, "Z2zDCHvMpZc", "https://www.youtube.com/watch?v=Z2zDCHvMpZc", 116, "/downloads/Vanlife/2021-08-22 When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely#/When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely. [Z2zDCHvMpZc].mp4", false, false, false, 1, ~U[2021-08-22 12:00:13Z], ~U[2026-07-11 15:03:58Z], ~U[2026-07-11 15:03:58Z], "Once you have all the components necessary for your particular build, spend some time composing them into the area you have designated. Be aware of the need to service or replace these items in the future. Will you have to tear apart the entire area to get at one component? That would be a nightmare! And don't forget to subscribe for more innovative design ideas for your van build.\n\n#onahumbleroad\n#customvanbuild", "When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely.", 10, 389, false, "Z2zDCHvMpZc", "https://www.youtube.com/watch?v=Z2zDCHvMpZc", "/downloads/Vanlife/2021-08-22 When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely#/When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely. [Z2zDCHvMpZc].mp4", false, ~U[2021-08-22 12:00:13Z]] 11:03:58.565 [debug] QUERY OK source="sources" db=0.1ms idle=489.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:03:58.566 [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] 11:03:58.566 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10306] 11:03:58.566 [debug] Current batch of media processed. Will check again in 1000ms 11:03:59.567 [debug] Current batch of media processed. Will check again in 1000ms 11:04:00.208 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:04:00.487 [info] {"source":"oban","duration":560,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:04:00.568 [debug] Current batch of media processed. Will check again in 1000ms 11:04:01.569 [debug] Current batch of media processed. Will check again in 1000ms 11:04:02.570 [debug] Current batch of media processed. Will check again in 1000ms 11:04:03.571 [debug] Current batch of media processed. Will check again in 1000ms 11:04:04.572 [debug] Current batch of media processed. Will check again in 1000ms 11:04:05.573 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "So you've decided to build a van? Many of the unknowns in building a van can be solved with very simple means if you have the right mindset. For example, here I demonstrate an oh-so-simple way to transfer measurements and screw locations from a plumbing manifold to the wall under the galley in my van build.\n#onahumbleroad\n#customvanbuild", "duration" => 290, "filename" => "/downloads/Vanlife/2021-08-20 How to mount plumbing in your van using a sheet of paper!/How to mount plumbing in your van using a sheet of paper! [Qy3N8zrPr8o].mp4", "id" => "Qy3N8zrPr8o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Qy3N8zrPr8o", "playlist_index" => 117, "timestamp" => 1629417859, "title" => "How to mount plumbing in your van using a sheet of paper!", "upload_date" => "20210820"} 11:04:05.573 [debug] QUERY OK source="sources" db=0.1ms idle=1019.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:04:05.574 [debug] QUERY OK source="sources" db=0.1ms idle=1019.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:05.574 [debug] QUERY OK source="media_items" db=0.4ms idle=491.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-20 00:04:19Z], 10] 11:04:05.575 [debug] QUERY OK source="media_items" db=0.5ms idle=20.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["So you've decided to build a van? Many of the unknowns in building a van can be solved with very simple means if you have the right mindset. For example, here I demonstrate an oh-so-simple way to transfer measurements and screw locations from a plumbing manifold to the wall under the galley in my van build.\n#onahumbleroad\n#customvanbuild", "How to mount plumbing in your van using a sheet of paper!", "83570d92-6c98-4e6f-bc01-0d45706b8690", 10, [], 290, false, "Qy3N8zrPr8o", "https://www.youtube.com/watch?v=Qy3N8zrPr8o", 117, "/downloads/Vanlife/2021-08-20 How to mount plumbing in your van using a sheet of paper!/How to mount plumbing in your van using a sheet of paper! [Qy3N8zrPr8o].mp4", false, false, false, 1, ~U[2021-08-20 00:04:19Z], ~U[2026-07-11 15:04:05Z], ~U[2026-07-11 15:04:05Z], "So you've decided to build a van? Many of the unknowns in building a van can be solved with very simple means if you have the right mindset. For example, here I demonstrate an oh-so-simple way to transfer measurements and screw locations from a plumbing manifold to the wall under the galley in my van build.\n#onahumbleroad\n#customvanbuild", "How to mount plumbing in your van using a sheet of paper!", 10, 290, false, "Qy3N8zrPr8o", "https://www.youtube.com/watch?v=Qy3N8zrPr8o", "/downloads/Vanlife/2021-08-20 How to mount plumbing in your van using a sheet of paper!/How to mount plumbing in your van using a sheet of paper! [Qy3N8zrPr8o].mp4", false, ~U[2021-08-20 00:04:19Z]] 11:04:05.575 [debug] QUERY OK source="sources" db=0.1ms idle=21.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:05.576 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 11:04:05.576 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10308] 11:04:05.576 [debug] Current batch of media processed. Will check again in 1000ms 11:04:06.577 [debug] Current batch of media processed. Will check again in 1000ms 11:04:07.578 [debug] Current batch of media processed. Will check again in 1000ms 11:04:08.579 [debug] Current batch of media processed. Will check again in 1000ms 11:04:09.580 [debug] Current batch of media processed. Will check again in 1000ms 11:04:10.581 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I explain my reasoning and design of my 8020 charger rack. Two MPPT solar controllers and two DC/DC chargers all lined up and hanging in the van garage. Neatly tucked out of the way with easy access.\n#onahumbleroad\n#customvanbuild", "duration" => 391, "filename" => "/downloads/Vanlife/2021-08-11 Build a custom rack for your MPPT and DC⧸DC chargers using 8020 aluminum profiles#/Build a custom rack for your MPPT and DC⧸DC chargers using 8020 aluminum profiles. [3jQZGtU5vhk].mp4", "id" => "3jQZGtU5vhk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3jQZGtU5vhk", "playlist_index" => 118, "timestamp" => 1628683202, "title" => "Build a custom rack for your MPPT and DC/DC chargers using 8020 aluminum profiles.", "upload_date" => "20210811"} 11:04:10.582 [debug] QUERY OK source="sources" db=0.1ms idle=1027.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:04:10.582 [debug] QUERY OK source="sources" db=0.1ms idle=1027.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:10.582 [debug] QUERY OK source="media_items" db=0.4ms idle=1027.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-11 12:00:02Z], 10] 11:04:10.583 [debug] QUERY OK source="media_items" db=0.4ms idle=1028.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I explain my reasoning and design of my 8020 charger rack. Two MPPT solar controllers and two DC/DC chargers all lined up and hanging in the van garage. Neatly tucked out of the way with easy access.\n#onahumbleroad\n#customvanbuild", "Build a custom rack for your MPPT and DC/DC chargers using 8020 aluminum profiles.", "04ae687e-81ff-4f32-b5c0-5bc4e32976a1", 10, [], 391, false, "3jQZGtU5vhk", "https://www.youtube.com/watch?v=3jQZGtU5vhk", 118, "/downloads/Vanlife/2021-08-11 Build a custom rack for your MPPT and DC⧸DC chargers using 8020 aluminum profiles#/Build a custom rack for your MPPT and DC⧸DC chargers using 8020 aluminum profiles. [3jQZGtU5vhk].mp4", false, false, false, 1, ~U[2021-08-11 12:00:02Z], ~U[2026-07-11 15:04:10Z], ~U[2026-07-11 15:04:10Z], "In this video I explain my reasoning and design of my 8020 charger rack. Two MPPT solar controllers and two DC/DC chargers all lined up and hanging in the van garage. Neatly tucked out of the way with easy access.\n#onahumbleroad\n#customvanbuild", "Build a custom rack for your MPPT and DC/DC chargers using 8020 aluminum profiles.", 10, 391, false, "3jQZGtU5vhk", "https://www.youtube.com/watch?v=3jQZGtU5vhk", "/downloads/Vanlife/2021-08-11 Build a custom rack for your MPPT and DC⧸DC chargers using 8020 aluminum profiles#/Build a custom rack for your MPPT and DC⧸DC chargers using 8020 aluminum profiles. [3jQZGtU5vhk].mp4", false, ~U[2021-08-11 12:00:02Z]] 11:04:10.584 [debug] QUERY OK source="sources" db=0.1ms idle=495.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:10.584 [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] 11:04:10.584 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10309] 11:04:10.584 [debug] Current batch of media processed. Will check again in 1000ms 11:04:11.585 [debug] Current batch of media processed. Will check again in 1000ms 11:04:12.586 [debug] Current batch of media processed. Will check again in 1000ms 11:04:13.587 [debug] Current batch of media processed. Will check again in 1000ms 11:04:14.588 [debug] Current batch of media processed. Will check again in 1000ms 11:04:15.589 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "You're finally out on the road, enjoying van life as you dreamed you would. And then the inevitable happens, you sprung a leak in your plumbing! Now what?! No water?! This is the single most important reason to build your plumbing system using zones. Zones allow you to isolate a bad plumbing line and continue on your way without effecting the rest of the plumbing system. Watch as I explain just how simple a zone manifold can be.\n#customvanbuild\n#onahumbleroad", "duration" => 372, "filename" => "/downloads/Vanlife/2021-08-04 VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor⧸Pex#/VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor⧸Pex. [jBr0aLbz1nA].mp4", "id" => "jBr0aLbz1nA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jBr0aLbz1nA", "playlist_index" => 119, "timestamp" => 1628078419, "title" => "VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor/Pex.", "upload_date" => "20210804"} 11:04:15.590 [debug] QUERY OK source="sources" db=0.2ms idle=1035.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:04:15.590 [debug] QUERY OK source="sources" db=0.1ms idle=1035.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:15.591 [debug] QUERY OK source="media_items" db=0.4ms idle=1036.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-04 12:00:19Z], 10] 11:04:15.591 [debug] QUERY OK source="media_items" db=0.5ms idle=1036.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["You're finally out on the road, enjoying van life as you dreamed you would. And then the inevitable happens, you sprung a leak in your plumbing! Now what?! No water?! This is the single most important reason to build your plumbing system using zones. Zones allow you to isolate a bad plumbing line and continue on your way without effecting the rest of the plumbing system. Watch as I explain just how simple a zone manifold can be.\n#customvanbuild\n#onahumbleroad", "VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor/Pex.", "0b82a622-c9eb-4c9d-9b1a-746e7abd5ca6", 10, [], 372, false, "jBr0aLbz1nA", "https://www.youtube.com/watch?v=jBr0aLbz1nA", 119, "/downloads/Vanlife/2021-08-04 VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor⧸Pex#/VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor⧸Pex. [jBr0aLbz1nA].mp4", false, false, false, 1, ~U[2021-08-04 12:00:19Z], ~U[2026-07-11 15:04:15Z], ~U[2026-07-11 15:04:15Z], "You're finally out on the road, enjoying van life as you dreamed you would. And then the inevitable happens, you sprung a leak in your plumbing! Now what?! No water?! This is the single most important reason to build your plumbing system using zones. Zones allow you to isolate a bad plumbing line and continue on your way without effecting the rest of the plumbing system. Watch as I explain just how simple a zone manifold can be.\n#customvanbuild\n#onahumbleroad", "VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor/Pex.", 10, 372, false, "jBr0aLbz1nA", "https://www.youtube.com/watch?v=jBr0aLbz1nA", "/downloads/Vanlife/2021-08-04 VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor⧸Pex#/VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor⧸Pex. [jBr0aLbz1nA].mp4", false, ~U[2021-08-04 12:00:19Z]] 11:04:15.592 [debug] QUERY OK source="sources" db=0.2ms idle=498.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:15.592 [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] 11:04:15.593 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10311] 11:04:15.593 [debug] Current batch of media processed. Will check again in 1000ms 11:04:16.593 [debug] Current batch of media processed. Will check again in 1000ms 11:04:17.594 [debug] Current batch of media processed. Will check again in 1000ms 11:04:18.595 [debug] Current batch of media processed. Will check again in 1000ms 11:04:19.596 [debug] Current batch of media processed. Will check again in 1000ms 11:04:20.597 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Here is a well though out approach to house battery charging in a Promaster van build.\nThe decisions you make regarding your battery charging systems begin with an understanding of your particular constraints or limitations. In this Promaster build, I have advised the client against the second dedicated alternator, as they can be problematic in this chassis. So DC to DC chargers are the next best option, along with a robust solar array on the roof. Lastly, every build gets a shore power connection for those rare times you are in a campground or mooch-docking at a friends house.\n#onahumbleroad\n#customvanbuild", "duration" => 469, "filename" => "/downloads/Vanlife/2021-08-01 In this van build, CRITICAL CHARGING DECISIONS must be made now#/In this van build, CRITICAL CHARGING DECISIONS must be made now. [xMz4UTCOSww].mp4", "id" => "xMz4UTCOSww", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xMz4UTCOSww", "playlist_index" => 120, "timestamp" => 1627819222, "title" => "In this van build, CRITICAL CHARGING DECISIONS must be made now.", "upload_date" => "20210801"} 11:04:20.598 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1043.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:04:20.598 [debug] QUERY OK source="sources" db=0.1ms idle=1043.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:20.599 [debug] QUERY OK source="media_items" db=0.3ms idle=1044.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-01 12:00:22Z], 10] 11:04:20.599 [debug] QUERY OK source="media_items" db=0.5ms idle=1044.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Here is a well though out approach to house battery charging in a Promaster van build.\nThe decisions you make regarding your battery charging systems begin with an understanding of your particular constraints or limitations. In this Promaster build, I have advised the client against the second dedicated alternator, as they can be problematic in this chassis. So DC to DC chargers are the next best option, along with a robust solar array on the roof. Lastly, every build gets a shore power connection for those rare times you are in a campground or mooch-docking at a friends house.\n#onahumbleroad\n#customvanbuild", "In this van build, CRITICAL CHARGING DECISIONS must be made now.", "0871528b-24fa-4c8d-8555-f47ac3ff11f4", 10, [], 469, false, "xMz4UTCOSww", "https://www.youtube.com/watch?v=xMz4UTCOSww", 120, "/downloads/Vanlife/2021-08-01 In this van build, CRITICAL CHARGING DECISIONS must be made now#/In this van build, CRITICAL CHARGING DECISIONS must be made now. [xMz4UTCOSww].mp4", false, false, false, 1, ~U[2021-08-01 12:00:22Z], ~U[2026-07-11 15:04:20Z], ~U[2026-07-11 15:04:20Z], "Here is a well though out approach to house battery charging in a Promaster van build.\nThe decisions you make regarding your battery charging systems begin with an understanding of your particular constraints or limitations. In this Promaster build, I have advised the client against the second dedicated alternator, as they can be problematic in this chassis. So DC to DC chargers are the next best option, along with a robust solar array on the roof. Lastly, every build gets a shore power connection for those rare times you are in a campground or mooch-docking at a friends house.\n#onahumbleroad\n#customvanbuild", "In this van build, CRITICAL CHARGING DECISIONS must be made now.", 10, 469, false, "xMz4UTCOSww", "https://www.youtube.com/watch?v=xMz4UTCOSww", "/downloads/Vanlife/2021-08-01 In this van build, CRITICAL CHARGING DECISIONS must be made now#/In this van build, CRITICAL CHARGING DECISIONS must be made now. [xMz4UTCOSww].mp4", false, ~U[2021-08-01 12:00:22Z]] 11:04:20.600 [debug] QUERY OK source="sources" db=0.2ms idle=500.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:20.600 [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] 11:04:20.600 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10313] 11:04:20.600 [debug] Current batch of media processed. Will check again in 1000ms 11:04:21.601 [debug] Current batch of media processed. Will check again in 1000ms 11:04:22.602 [debug] Current batch of media processed. Will check again in 1000ms 11:04:23.603 [debug] Current batch of media processed. Will check again in 1000ms 11:04:24.604 [debug] Current batch of media processed. Will check again in 1000ms 11:04:25.605 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "When building a van, you should make images, relentlessly. Reference images are useful as time passes and your memory fades. \"Where did I run that wire?\" \"Is that pipe near where I need to drill?\" Take lots of pictures throughout the build.\n\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#vanbuild\n#customvan\n#vanlife", "duration" => 214, "filename" => "/downloads/Vanlife/2020-06-14 Why you should make reference images when building a van/Why you should make reference images when building a van [sWNk0S5ItSw].mp4", "id" => "sWNk0S5ItSw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=sWNk0S5ItSw", "playlist_index" => 121, "timestamp" => 1592136022, "title" => "Why you should make reference images when building a van", "upload_date" => "20200614"} 11:04:25.606 [debug] QUERY OK source="sources" db=0.1ms idle=1051.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:04:25.606 [debug] QUERY OK source="sources" db=0.1ms idle=1051.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:25.606 [debug] QUERY OK source="media_items" db=0.4ms idle=1051.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-06-14 12:00:22Z], 10] 11:04:25.624 [debug] QUERY OK source="media_items" db=16.8ms idle=1052.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["When building a van, you should make images, relentlessly. Reference images are useful as time passes and your memory fades. \"Where did I run that wire?\" \"Is that pipe near where I need to drill?\" Take lots of pictures throughout the build.\n\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#vanbuild\n#customvan\n#vanlife", "Why you should make reference images when building a van", "1b6e5bf3-e220-45b8-b4c5-b1c1e5657f00", 10, [], 214, false, "sWNk0S5ItSw", "https://www.youtube.com/watch?v=sWNk0S5ItSw", 121, "/downloads/Vanlife/2020-06-14 Why you should make reference images when building a van/Why you should make reference images when building a van [sWNk0S5ItSw].mp4", false, false, false, 1, ~U[2020-06-14 12:00:22Z], ~U[2026-07-11 15:04:25Z], ~U[2026-07-11 15:04:25Z], "When building a van, you should make images, relentlessly. Reference images are useful as time passes and your memory fades. \"Where did I run that wire?\" \"Is that pipe near where I need to drill?\" Take lots of pictures throughout the build.\n\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#vanbuild\n#customvan\n#vanlife", "Why you should make reference images when building a van", 10, 214, false, "sWNk0S5ItSw", "https://www.youtube.com/watch?v=sWNk0S5ItSw", "/downloads/Vanlife/2020-06-14 Why you should make reference images when building a van/Why you should make reference images when building a van [sWNk0S5ItSw].mp4", false, ~U[2020-06-14 12:00:22Z]] 11:04:25.624 [debug] QUERY OK source="sources" db=0.2ms idle=520.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:25.624 [debug] QUERY OK source="media_profiles" db=0.1ms idle=18.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:04:25.625 [debug] QUERY OK source="media_items" db=0.2ms idle=18.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10315] 11:04:25.625 [debug] Current batch of media processed. Will check again in 1000ms 11:04:26.625 [debug] Current batch of media processed. Will check again in 1000ms 11:04:27.626 [debug] Current batch of media processed. Will check again in 1000ms 11:04:28.627 [debug] Current batch of media processed. Will check again in 1000ms 11:04:29.628 [debug] Current batch of media processed. Will check again in 1000ms 11:04:30.489 [info] {"source":"oban","duration":649,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:04:30.629 [debug] Current batch of media processed. Will check again in 1000ms 11:04:31.630 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The Vagabonds are a full time couple who know how to live on the road. As I continue to build their forever van, I am inspired to design simply and with purpose to accommodate their needs and exceed their expectations. Yes, even grey tanks are a thing of beauty in the Humble Road shop! \n\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#vanbuild\n#vanlife", "duration" => 865, "filename" => "/downloads/Vanlife/2019-12-22 Grey tanks are hung with care under this Promaster van/Grey tanks are hung with care under this Promaster van [YEdZLbHnmUA].mp4", "id" => "YEdZLbHnmUA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=YEdZLbHnmUA", "playlist_index" => 122, "timestamp" => 1577019605, "title" => "Grey tanks are hung with care under this Promaster van", "upload_date" => "20191222"} 11:04:31.630 [debug] QUERY OK source="sources" db=0.1ms idle=520.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:04:31.631 [debug] QUERY OK source="sources" db=0.1ms idle=76.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:31.631 [debug] QUERY OK source="media_items" db=0.4ms idle=76.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2019-12-22 13:00:05Z], 10] 11:04:31.641 [debug] QUERY OK source="media_items" db=9.3ms idle=77.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Vagabonds are a full time couple who know how to live on the road. As I continue to build their forever van, I am inspired to design simply and with purpose to accommodate their needs and exceed their expectations. Yes, even grey tanks are a thing of beauty in the Humble Road shop! \n\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#vanbuild\n#vanlife", "Grey tanks are hung with care under this Promaster van", "b31c4e8d-df58-461c-be56-f4b4f6bddecd", 10, [], 865, false, "YEdZLbHnmUA", "https://www.youtube.com/watch?v=YEdZLbHnmUA", 122, "/downloads/Vanlife/2019-12-22 Grey tanks are hung with care under this Promaster van/Grey tanks are hung with care under this Promaster van [YEdZLbHnmUA].mp4", false, false, false, 1, ~U[2019-12-22 13:00:05Z], ~U[2026-07-11 15:04:31Z], ~U[2026-07-11 15:04:31Z], "The Vagabonds are a full time couple who know how to live on the road. As I continue to build their forever van, I am inspired to design simply and with purpose to accommodate their needs and exceed their expectations. Yes, even grey tanks are a thing of beauty in the Humble Road shop! \n\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#vanbuild\n#vanlife", "Grey tanks are hung with care under this Promaster van", 10, 865, false, "YEdZLbHnmUA", "https://www.youtube.com/watch?v=YEdZLbHnmUA", "/downloads/Vanlife/2019-12-22 Grey tanks are hung with care under this Promaster van/Grey tanks are hung with care under this Promaster van [YEdZLbHnmUA].mp4", false, ~U[2019-12-22 13:00:05Z]] 11:04:31.641 [debug] QUERY OK source="sources" db=0.1ms idle=87.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:31.642 [debug] QUERY OK source="media_profiles" db=0.1ms idle=10.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:04:31.642 [debug] QUERY OK source="media_items" db=0.2ms idle=11.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10317] 11:04:31.642 [debug] Current batch of media processed. Will check again in 1000ms 11:04:32.643 [debug] Current batch of media processed. Will check again in 1000ms 11:04:33.644 [debug] Current batch of media processed. Will check again in 1000ms 11:04:34.645 [debug] Current batch of media processed. Will check again in 1000ms 11:04:35.646 [debug] Current batch of media processed. Will check again in 1000ms 11:04:36.647 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Common mistakes we see DIY van builders (and some pro builders) make.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nDrop-in Electrical and Plumbing Systems:\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\nMarine Adhesive: https://amzn.to/42Mfwon\n\nRubber Edge Trim: https://amzn.to/3UEz0Js\n\nDigital Level: https://amzn.to/3uDFAoP\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nABOUT\nIn this video we discuss the biggest mistakes we see in DIY van conversions. Avoiding these common mistakes will save you time, money and alleviate problems down the road.\n\n⏰ TIMECODES\n0:00 Intro\n0:50 Mistake #1\n2:55 Mistake #2\n6:40 Mistake #3\n10:40 Mistake #4\n11:25 Mistake #5\n15:10 Bonus Tip\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1048, "filename" => "/downloads/Vanlife/2024-02-19 Avoid These 5 Van Build Mistakes!/Avoid These 5 Van Build Mistakes! [O5AjJvRmaok].mkv", "id" => "O5AjJvRmaok", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=O5AjJvRmaok", "playlist_index" => 123, "timestamp" => 1708347629, "title" => "Avoid These 5 Van Build Mistakes!", "upload_date" => "20240219"} 11:04:36.648 [debug] QUERY OK source="sources" db=0.1ms idle=1093.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:04:36.648 [debug] QUERY OK source="sources" db=0.1ms idle=1093.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:36.649 [debug] QUERY OK source="media_items" db=0.4ms idle=1094.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-19 13:00:29Z], 10] 11:04:36.650 [debug] QUERY OK source="media_items" db=1.0ms idle=1094.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Common mistakes we see DIY van builders (and some pro builders) make.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nDrop-in Electrical and Plumbing Systems:\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\nMarine Adhesive: https://amzn.to/42Mfwon\n\nRubber Edge Trim: https://amzn.to/3UEz0Js\n\nDigital Level: https://amzn.to/3uDFAoP\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nABOUT\nIn this video we discuss the biggest mistakes we see in DIY van conversions. Avoiding these common mistakes will save you time, money and alleviate problems down the road.\n\n⏰ TIMECODES\n0:00 Intro\n0:50 Mistake #1\n2:55 Mistake #2\n6:40 Mistake #3\n10:40 Mistake #4\n11:25 Mistake #5\n15:10 Bonus Tip\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Avoid These 5 Van Build Mistakes!", "b8926b28-f01e-4d67-beba-ee6f0f57ab35", 10, [], 1048, false, "O5AjJvRmaok", "https://www.youtube.com/watch?v=O5AjJvRmaok", 123, "/downloads/Vanlife/2024-02-19 Avoid These 5 Van Build Mistakes!/Avoid These 5 Van Build Mistakes! [O5AjJvRmaok].mkv", false, false, false, 1, ~U[2024-02-19 13:00:29Z], ~U[2026-07-11 15:04:36Z], ~U[2026-07-11 15:04:36Z], "Common mistakes we see DIY van builders (and some pro builders) make.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nDrop-in Electrical and Plumbing Systems:\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\nMarine Adhesive: https://amzn.to/42Mfwon\n\nRubber Edge Trim: https://amzn.to/3UEz0Js\n\nDigital Level: https://amzn.to/3uDFAoP\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nABOUT\nIn this video we discuss the biggest mistakes we see in DIY van conversions. Avoiding these common mistakes will save you time, money and alleviate problems down the road.\n\n⏰ TIMECODES\n0:00 Intro\n0:50 Mistake #1\n2:55 Mistake #2\n6:40 Mistake #3\n10:40 Mistake #4\n11:25 Mistake #5\n15:10 Bonus Tip\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Avoid These 5 Van Build Mistakes!", 10, 1048, false, "O5AjJvRmaok", "https://www.youtube.com/watch?v=O5AjJvRmaok", "/downloads/Vanlife/2024-02-19 Avoid These 5 Van Build Mistakes!/Avoid These 5 Van Build Mistakes! [O5AjJvRmaok].mkv", false, ~U[2024-02-19 13:00:29Z]] 11:04:36.650 [debug] QUERY OK source="sources" db=0.1ms idle=535.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:36.651 [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] 11:04:36.651 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10318] 11:04:36.651 [debug] Current batch of media processed. Will check again in 1000ms 11:04:37.652 [debug] Current batch of media processed. Will check again in 1000ms 11:04:38.653 [debug] Current batch of media processed. Will check again in 1000ms 11:04:39.654 [debug] Current batch of media processed. Will check again in 1000ms 11:04:40.655 [debug] Current batch of media processed. Will check again in 1000ms 11:04:41.656 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Join Mike and Marcia (figuratively) as they shower in the B Box using Advanced RV's recycle shower system. The system cleans shower water through a series of filters, reheats it to temperature, and can be used to flush the toilet.\n\nReminder - B Box 1 is available for sale. Check out all our available units at https://advanced-rv.com/pre-owned-vehicles-for-sale/\n\r\nFollow Us:\r\nFacebook: https://www.facebook.com/pg/AdvancedR...\r\nTwitter: https://twitter.com/Advanced_RV\r\nInstagram: https://www.instagram.com/AdvancedRV/", "duration" => 174, "filename" => "/downloads/Vanlife/2021-06-04 20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System/20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System [ntGb1gZDwjk].mp4", "id" => "ntGb1gZDwjk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ntGb1gZDwjk", "playlist_index" => 124, "timestamp" => 1622843858, "title" => "20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System", "upload_date" => "20210604"} 11:04:41.657 [debug] QUERY OK source="sources" db=0.1ms idle=1102.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:04:41.657 [debug] QUERY OK source="sources" db=0.0ms idle=1102.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:41.657 [debug] QUERY OK source="media_items" db=0.4ms idle=1103.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-06-04 21:57:38Z], 10] 11:04:41.658 [debug] QUERY OK source="media_items" db=0.6ms idle=1103.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join Mike and Marcia (figuratively) as they shower in the B Box using Advanced RV's recycle shower system. The system cleans shower water through a series of filters, reheats it to temperature, and can be used to flush the toilet.\n\nReminder - B Box 1 is available for sale. Check out all our available units at https://advanced-rv.com/pre-owned-vehicles-for-sale/\n\r\nFollow Us:\r\nFacebook: https://www.facebook.com/pg/AdvancedR...\r\nTwitter: https://twitter.com/Advanced_RV\r\nInstagram: https://www.instagram.com/AdvancedRV/", "20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System", "cb834f79-5b7b-4185-bc1b-a9ad71f6d290", 10, [], 174, false, "ntGb1gZDwjk", "https://www.youtube.com/watch?v=ntGb1gZDwjk", 124, "/downloads/Vanlife/2021-06-04 20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System/20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System [ntGb1gZDwjk].mp4", false, false, false, 1, ~U[2021-06-04 21:57:38Z], ~U[2026-07-11 15:04:41Z], ~U[2026-07-11 15:04:41Z], "Join Mike and Marcia (figuratively) as they shower in the B Box using Advanced RV's recycle shower system. The system cleans shower water through a series of filters, reheats it to temperature, and can be used to flush the toilet.\n\nReminder - B Box 1 is available for sale. Check out all our available units at https://advanced-rv.com/pre-owned-vehicles-for-sale/\n\r\nFollow Us:\r\nFacebook: https://www.facebook.com/pg/AdvancedR...\r\nTwitter: https://twitter.com/Advanced_RV\r\nInstagram: https://www.instagram.com/AdvancedRV/", "20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System", 10, 174, false, "ntGb1gZDwjk", "https://www.youtube.com/watch?v=ntGb1gZDwjk", "/downloads/Vanlife/2021-06-04 20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System/20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System [ntGb1gZDwjk].mp4", false, ~U[2021-06-04 21:57:38Z]] 11:04:41.659 [debug] QUERY OK source="sources" db=0.1ms idle=537.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:41.659 [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] 11:04:41.659 [debug] QUERY OK source="media_items" db=0.1ms idle=2.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10320] 11:04:41.659 [debug] Current batch of media processed. Will check again in 1000ms 11:04:42.660 [debug] Current batch of media processed. Will check again in 1000ms 11:04:43.661 [debug] Current batch of media processed. Will check again in 1000ms 11:04:44.662 [debug] Current batch of media processed. Will check again in 1000ms 11:04:45.663 [debug] Current batch of media processed. Will check again in 1000ms 11:04:46.664 [debug] Current batch of media processed. Will check again in 1000ms 11:04:47.665 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We've been living in our Remodeled RV for a few months now, and everything seems to be working. We thought we'd give you an overview of how we plumbed our shower loop. This system can effectively give you an unlimited hot water shower using only a couple of gallons of water.\n\nWe are attempting the daunting task of designing and installing a recirculating, filtering shower system in our RV.\n\nBig Blue Filters: https://amzn.to/3ilhYsU\nActivated Carbon Filter: https://amzn.to/30rC3I2\n5 Micron Filters: https://amzn.to/33j3gys\nMotorized valves: https://amzn.to/3cQmqyO\nPex connectors: https://amzn.to/33lSIic\nPex crimper: https://amzn.to/3l4lYjb\nPex crimp ring: https://amzn.to/3iiFd77\npex piping: https://amzn.to/3ihJveJ\n5Gal Water storage tank: https://amzn.to/34eirs1\nHeat Exchanger: https://amzn.to/2G95DeA\nArduino Mega: https://amzn.to/2SfRjD8\nRelay Board: https://amzn.to/2GpgRLJ\nUV Filter: https://amzn.to/2SexgVO\n\nVisit our website for more information about locations and for photos of our trips and projects.\nWildLanterns.com\n\nMusic is from Epidemic Sound: https://www.epidemicsound.com/referral/tuvk35/\n\nSome of our Gear:\nSmall Camera: https://amzn.to/33Y6DL2\nOur Gimbal: https://amzn.to/3qLvStT\nCamera: https://amzn.to/37pp36Y\nGoPro: https://amzn.to/39sleyP\nMicrophone: https://amzn.to/2v8DvSR\nND Filter: https://amzn.to/2Gafwos\nGoPro Hero 8 Black: https://amzn.to/3bIFXjt\nGoPro Media Mod: https://gopro.com/en/us/shop/mounts-accessories/media-mod/AJFMD-001.html\n\nWe are a part of the Amazon Affiliate program. We get a small commission off of anything you buy from one of these links. So thank you!\n\n#tinyhouse #DIY #remodeling #DIYstorage #remodel #simpleliving #modernfarmhouse #RVbathroom #showerloop #recirculatingshower #hourshower", "duration" => 650, "filename" => "/downloads/Vanlife/2021-03-05 Overview of Our Recirculating Shower | RV Renovation/Overview of Our Recirculating Shower | RV Renovation [dhpBTra9bXs].mp4", "id" => "dhpBTra9bXs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dhpBTra9bXs", "playlist_index" => 125, "timestamp" => 1614967208, "title" => "Overview of Our Recirculating Shower | RV Renovation", "upload_date" => "20210305"} 11:04:47.666 [debug] QUERY OK source="sources" db=0.3ms idle=539.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:04:47.667 [debug] QUERY OK source="sources" db=0.1ms idle=112.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:47.667 [debug] QUERY OK source="media_items" db=0.4ms idle=112.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-05 18:00:08Z], 10] 11:04:47.669 [debug] QUERY OK source="media_items" db=1.4ms idle=113.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We've been living in our Remodeled RV for a few months now, and everything seems to be working. We thought we'd give you an overview of how we plumbed our shower loop. This system can effectively give you an unlimited hot water shower using only a couple of gallons of water.\n\nWe are attempting the daunting task of designing and installing a recirculating, filtering shower system in our RV.\n\nBig Blue Filters: https://amzn.to/3ilhYsU\nActivated Carbon Filter: https://amzn.to/30rC3I2\n5 Micron Filters: https://amzn.to/33j3gys\nMotorized valves: https://amzn.to/3cQmqyO\nPex connectors: https://amzn.to/33lSIic\nPex crimper: https://amzn.to/3l4lYjb\nPex crimp ring: https://amzn.to/3iiFd77\npex piping: https://amzn.to/3ihJveJ\n5Gal Water storage tank: https://amzn.to/34eirs1\nHeat Exchanger: https://amzn.to/2G95DeA\nArduino Mega: https://amzn.to/2SfRjD8\nRelay Board: https://amzn.to/2GpgRLJ\nUV Filter: https://amzn.to/2SexgVO\n\nVisit our website for more information about locations and for photos of our trips and projects.\nWildLanterns.com\n\nMusic is from Epidemic Sound: https://www.epidemicsound.com/referral/tuvk35/\n\nSome of our Gear:\nSmall Camera: https://amzn.to/33Y6DL2\nOur Gimbal: https://amzn.to/3qLvStT\nCamera: https://amzn.to/37pp36Y\nGoPro: https://amzn.to/39sleyP\nMicrophone: https://amzn.to/2v8DvSR\nND Filter: https://amzn.to/2Gafwos\nGoPro Hero 8 Black: https://amzn.to/3bIFXjt\nGoPro Media Mod: https://gopro.com/en/us/shop/mounts-accessories/media-mod/AJFMD-001.html\n\nWe are a part of the Amazon Affiliate program. We get a small commission off of anything you buy from one of these links. So thank you!\n\n#tinyhouse #DIY #remodeling #DIYstorage #remodel #simpleliving #modernfarmhouse #RVbathroom #showerloop #recirculatingshower #hourshower", "Overview of Our Recirculating Shower | RV Renovation", "12e5904b-3f39-416e-b480-dbd683213ee6", 10, [], 650, false, "dhpBTra9bXs", "https://www.youtube.com/watch?v=dhpBTra9bXs", 125, "/downloads/Vanlife/2021-03-05 Overview of Our Recirculating Shower | RV Renovation/Overview of Our Recirculating Shower | RV Renovation [dhpBTra9bXs].mp4", false, false, false, 1, ~U[2021-03-05 18:00:08Z], ~U[2026-07-11 15:04:47Z], ~U[2026-07-11 15:04:47Z], "We've been living in our Remodeled RV for a few months now, and everything seems to be working. We thought we'd give you an overview of how we plumbed our shower loop. This system can effectively give you an unlimited hot water shower using only a couple of gallons of water.\n\nWe are attempting the daunting task of designing and installing a recirculating, filtering shower system in our RV.\n\nBig Blue Filters: https://amzn.to/3ilhYsU\nActivated Carbon Filter: https://amzn.to/30rC3I2\n5 Micron Filters: https://amzn.to/33j3gys\nMotorized valves: https://amzn.to/3cQmqyO\nPex connectors: https://amzn.to/33lSIic\nPex crimper: https://amzn.to/3l4lYjb\nPex crimp ring: https://amzn.to/3iiFd77\npex piping: https://amzn.to/3ihJveJ\n5Gal Water storage tank: https://amzn.to/34eirs1\nHeat Exchanger: https://amzn.to/2G95DeA\nArduino Mega: https://amzn.to/2SfRjD8\nRelay Board: https://amzn.to/2GpgRLJ\nUV Filter: https://amzn.to/2SexgVO\n\nVisit our website for more information about locations and for photos of our trips and projects.\nWildLanterns.com\n\nMusic is from Epidemic Sound: https://www.epidemicsound.com/referral/tuvk35/\n\nSome of our Gear:\nSmall Camera: https://amzn.to/33Y6DL2\nOur Gimbal: https://amzn.to/3qLvStT\nCamera: https://amzn.to/37pp36Y\nGoPro: https://amzn.to/39sleyP\nMicrophone: https://amzn.to/2v8DvSR\nND Filter: https://amzn.to/2Gafwos\nGoPro Hero 8 Black: https://amzn.to/3bIFXjt\nGoPro Media Mod: https://gopro.com/en/us/shop/mounts-accessories/media-mod/AJFMD-001.html\n\nWe are a part of the Amazon Affiliate program. We get a small commission off of anything you buy from one of these links. So thank you!\n\n#tinyhouse #DIY #remodeling #DIYstorage #remodel #simpleliving #modernfarmhouse #RVbathroom #showerloop #recirculatingshower #hourshower", "Overview of Our Recirculating Shower | RV Renovation", 10, 650, false, "dhpBTra9bXs", "https://www.youtube.com/watch?v=dhpBTra9bXs", "/downloads/Vanlife/2021-03-05 Overview of Our Recirculating Shower | RV Renovation/Overview of Our Recirculating Shower | RV Renovation [dhpBTra9bXs].mp4", false, ~U[2021-03-05 18:00:08Z]] 11:04:47.669 [debug] QUERY OK source="sources" db=0.1ms idle=114.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:47.670 [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] 11:04:47.670 [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 [10322] 11:04:47.670 [debug] Current batch of media processed. Will check again in 1000ms 11:04:48.671 [debug] Current batch of media processed. Will check again in 1000ms 11:04:49.672 [debug] Current batch of media processed. Will check again in 1000ms 11:04:50.673 [debug] Current batch of media processed. Will check again in 1000ms 11:04:51.674 [debug] Current batch of media processed. Will check again in 1000ms 11:04:52.675 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Join us for an exclusive tour of the world's first 3D printed van, showcasing how innovation in 3d printing can create a surprising campervan experience. This unique van build redefines expectations for van life, proving that even a 3D printed vehicle can offer comfortable off grid living with amenities like a shower, fridge, and bed.\n\nhttps://bucksd.com/\n\nAll Jarrod Tocci Information:\nDIY Building Channel: @Tocrastudio \n\nWant to work together or feature your build?\n📩 Business inquiries: jarrod.tocci@thestation.io\n info@jarrodtocci.com\nFOLLOW ALONG:\nInstagram ➜ https://www.instagram.com/jarrodtocci \nWebsite ➜ https://jarrodtocci.com/", "duration" => 1497, "filename" => "/downloads/Vanlife/2026-04-23 The First EVER 3D Printed Camper Van (Stealth Build on eSprinter)/The First EVER 3D Printed Camper Van (Stealth Build on eSprinter) [sq885l2ZmOA].mkv", "id" => "sq885l2ZmOA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=sq885l2ZmOA", "playlist_index" => 126, "timestamp" => 1776973649, "title" => "The First EVER 3D Printed Camper Van (Stealth Build on eSprinter)", "upload_date" => "20260423"} 11:04:52.676 [debug] QUERY OK source="sources" db=0.1ms idle=1121.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:04:52.676 [debug] QUERY OK source="sources" db=0.1ms idle=1121.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:52.677 [debug] QUERY OK source="media_items" db=0.5ms idle=1121.9ms 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 19:47:29Z], 10] 11:04:52.677 [debug] QUERY OK source="media_items" db=0.6ms idle=1122.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join us for an exclusive tour of the world's first 3D printed van, showcasing how innovation in 3d printing can create a surprising campervan experience. This unique van build redefines expectations for van life, proving that even a 3D printed vehicle can offer comfortable off grid living with amenities like a shower, fridge, and bed.\n\nhttps://bucksd.com/\n\nAll Jarrod Tocci Information:\nDIY Building Channel: @Tocrastudio \n\nWant to work together or feature your build?\n📩 Business inquiries: jarrod.tocci@thestation.io\n info@jarrodtocci.com\nFOLLOW ALONG:\nInstagram ➜ https://www.instagram.com/jarrodtocci \nWebsite ➜ https://jarrodtocci.com/", "The First EVER 3D Printed Camper Van (Stealth Build on eSprinter)", "81018a7b-08d3-40d6-86a3-65e906d32bf2", 10, [], 1497, false, "sq885l2ZmOA", "https://www.youtube.com/watch?v=sq885l2ZmOA", 126, "/downloads/Vanlife/2026-04-23 The First EVER 3D Printed Camper Van (Stealth Build on eSprinter)/The First EVER 3D Printed Camper Van (Stealth Build on eSprinter) [sq885l2ZmOA].mkv", false, false, false, 1, ~U[2026-04-23 19:47:29Z], ~U[2026-07-11 15:04:52Z], ~U[2026-07-11 15:04:52Z], "Join us for an exclusive tour of the world's first 3D printed van, showcasing how innovation in 3d printing can create a surprising campervan experience. This unique van build redefines expectations for van life, proving that even a 3D printed vehicle can offer comfortable off grid living with amenities like a shower, fridge, and bed.\n\nhttps://bucksd.com/\n\nAll Jarrod Tocci Information:\nDIY Building Channel: @Tocrastudio \n\nWant to work together or feature your build?\n📩 Business inquiries: jarrod.tocci@thestation.io\n info@jarrodtocci.com\nFOLLOW ALONG:\nInstagram ➜ https://www.instagram.com/jarrodtocci \nWebsite ➜ https://jarrodtocci.com/", "The First EVER 3D Printed Camper Van (Stealth Build on eSprinter)", 10, 1497, false, "sq885l2ZmOA", "https://www.youtube.com/watch?v=sq885l2ZmOA", "/downloads/Vanlife/2026-04-23 The First EVER 3D Printed Camper Van (Stealth Build on eSprinter)/The First EVER 3D Printed Camper Van (Stealth Build on eSprinter) [sq885l2ZmOA].mkv", false, ~U[2026-04-23 19:47:29Z]] 11:04:52.678 [debug] QUERY OK source="sources" db=0.1ms idle=545.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:52.678 [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] 11:04:52.678 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10324] 11:04:52.678 [debug] Current batch of media processed. Will check again in 1000ms 11:04:53.679 [debug] Current batch of media processed. Will check again in 1000ms 11:04:54.680 [debug] Current batch of media processed. Will check again in 1000ms 11:04:55.681 [debug] Current batch of media processed. Will check again in 1000ms 11:04:56.682 [debug] Current batch of media processed. Will check again in 1000ms 11:04:57.683 [debug] Current batch of media processed. Will check again in 1000ms 11:04:58.684 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/kirbywinson/?hl=en\nHis Website: https://www.kurvdesign.com/gallery\n\nStep inside Baltica — Kirby’s 15th van build and easily his most creative conversion yet.\n\nThis one-of-a-kind smart van is built entirely from raw Baltic birch plywood and designed around Scandinavian minimalism, parametric woodworking, and functional art. Inspired by Kirby’s signature curved furniture builds, Baltica pushes the limits of what’s possible in van life design.\n\nFrom the moment you step inside, you’re surrounded by flowing wave-shaped wood cabinetry, curved kerf-cut walls, and slatted wood features that feel more like architecture than a vehicle. Every surface is perfectly crafted, sculpted, and completely unlike anything we’ve ever toured before.\n\nAnd then there’s the shower…\n\nYes — this van has a fully functional see-through plexiglass shower framed with slatted Baltic birch. It’s minimal, artistic, and honestly unreal to experience in person.\n\nBut Baltica isn’t just design — it’s a fully capable off-grid smart van loaded with serious tech:\n\n• Massive 900Ah electrical system\n• Full heating + air conditioning\n• Smart system controls\n• Hidden pop-up table (one of a kind design)\n• Huge couch storage\n• Interior pass-through\n• Built-in 3D printer 🤯\n\nEvery detail was engineered to blend beauty with functionality — from the parametric wave cabinetry to the sculpted couch framing that looks like it was carved by nature itself.\n\nKirby is known for building only one-of-one vans, but Baltica may be his most artistic and innovative build yet.\n\nIf you love van life, Scandinavian design, smart van tech, or next-level craftsmanship — this tour is something special.\n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "duration" => 759, "filename" => "/downloads/Vanlife/2026-02-06 The Most Creative Van Ever Built ⧸ This Van Has a See-Through Shower/The Most Creative Van Ever Built ⧸ This Van Has a See-Through Shower [FIKL5kGZaU0].mkv", "id" => "FIKL5kGZaU0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FIKL5kGZaU0", "playlist_index" => 127, "timestamp" => 1770390122, "title" => "The Most Creative Van Ever Built / This Van Has a See-Through Shower", "upload_date" => "20260206"} 11:04:58.685 [debug] QUERY OK source="sources" db=0.2ms idle=546.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:04:58.685 [debug] QUERY OK source="sources" db=0.1ms idle=130.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:04:58.686 [debug] QUERY OK source="media_items" db=0.4ms idle=131.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-06 15:02:02Z], 10] 11:04:58.688 [debug] QUERY OK source="media_items" db=2.3ms idle=131.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/kirbywinson/?hl=en\nHis Website: https://www.kurvdesign.com/gallery\n\nStep inside Baltica — Kirby’s 15th van build and easily his most creative conversion yet.\n\nThis one-of-a-kind smart van is built entirely from raw Baltic birch plywood and designed around Scandinavian minimalism, parametric woodworking, and functional art. Inspired by Kirby’s signature curved furniture builds, Baltica pushes the limits of what’s possible in van life design.\n\nFrom the moment you step inside, you’re surrounded by flowing wave-shaped wood cabinetry, curved kerf-cut walls, and slatted wood features that feel more like architecture than a vehicle. Every surface is perfectly crafted, sculpted, and completely unlike anything we’ve ever toured before.\n\nAnd then there’s the shower…\n\nYes — this van has a fully functional see-through plexiglass shower framed with slatted Baltic birch. It’s minimal, artistic, and honestly unreal to experience in person.\n\nBut Baltica isn’t just design — it’s a fully capable off-grid smart van loaded with serious tech:\n\n• Massive 900Ah electrical system\n• Full heating + air conditioning\n• Smart system controls\n• Hidden pop-up table (one of a kind design)\n• Huge couch storage\n• Interior pass-through\n• Built-in 3D printer 🤯\n\nEvery detail was engineered to blend beauty with functionality — from the parametric wave cabinetry to the sculpted couch framing that looks like it was carved by nature itself.\n\nKirby is known for building only one-of-one vans, but Baltica may be his most artistic and innovative build yet.\n\nIf you love van life, Scandinavian design, smart van tech, or next-level craftsmanship — this tour is something special.\n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "The Most Creative Van Ever Built / This Van Has a See-Through Shower", "972b44b1-9d77-4006-ad7f-307f079b886f", 10, [], 759, false, "FIKL5kGZaU0", "https://www.youtube.com/watch?v=FIKL5kGZaU0", 127, "/downloads/Vanlife/2026-02-06 The Most Creative Van Ever Built ⧸ This Van Has a See-Through Shower/The Most Creative Van Ever Built ⧸ This Van Has a See-Through Shower [FIKL5kGZaU0].mkv", false, false, false, 2, ~U[2026-02-06 15:02:02Z], ~U[2026-07-11 15:04:58Z], ~U[2026-07-11 15:04:58Z], "🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/kirbywinson/?hl=en\nHis Website: https://www.kurvdesign.com/gallery\n\nStep inside Baltica — Kirby’s 15th van build and easily his most creative conversion yet.\n\nThis one-of-a-kind smart van is built entirely from raw Baltic birch plywood and designed around Scandinavian minimalism, parametric woodworking, and functional art. Inspired by Kirby’s signature curved furniture builds, Baltica pushes the limits of what’s possible in van life design.\n\nFrom the moment you step inside, you’re surrounded by flowing wave-shaped wood cabinetry, curved kerf-cut walls, and slatted wood features that feel more like architecture than a vehicle. Every surface is perfectly crafted, sculpted, and completely unlike anything we’ve ever toured before.\n\nAnd then there’s the shower…\n\nYes — this van has a fully functional see-through plexiglass shower framed with slatted Baltic birch. It’s minimal, artistic, and honestly unreal to experience in person.\n\nBut Baltica isn’t just design — it’s a fully capable off-grid smart van loaded with serious tech:\n\n• Massive 900Ah electrical system\n• Full heating + air conditioning\n• Smart system controls\n• Hidden pop-up table (one of a kind design)\n• Huge couch storage\n• Interior pass-through\n• Built-in 3D printer 🤯\n\nEvery detail was engineered to blend beauty with functionality — from the parametric wave cabinetry to the sculpted couch framing that looks like it was carved by nature itself.\n\nKirby is known for building only one-of-one vans, but Baltica may be his most artistic and innovative build yet.\n\nIf you love van life, Scandinavian design, smart van tech, or next-level craftsmanship — this tour is something special.\n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "The Most Creative Van Ever Built / This Van Has a See-Through Shower", 10, 759, false, "FIKL5kGZaU0", "https://www.youtube.com/watch?v=FIKL5kGZaU0", "/downloads/Vanlife/2026-02-06 The Most Creative Van Ever Built ⧸ This Van Has a See-Through Shower/The Most Creative Van Ever Built ⧸ This Van Has a See-Through Shower [FIKL5kGZaU0].mkv", false, ~U[2026-02-06 15:02:02Z]] 11:04:58.689 [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" = ?) [10] 11:04:58.689 [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] 11:04:58.689 [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 [10327] 11:04:58.690 [debug] Current batch of media processed. Will check again in 1000ms 11:04:59.690 [debug] Current batch of media processed. Will check again in 1000ms 11:05:00.209 [info] {"source":"oban","duration":141,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:05:00.490 [info] {"source":"oban","duration":596,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:05:00.691 [debug] Current batch of media processed. Will check again in 1000ms 11:05:01.692 [debug] Current batch of media processed. Will check again in 1000ms 11:05:02.693 [debug] Current batch of media processed. Will check again in 1000ms 11:05:03.694 [debug] Current batch of media processed. Will check again in 1000ms 11:05:04.695 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "This One-Off Camper Van Has a Mind-Blowingly Creative Design With a Genius Workshop.\n\nEver dreamed of living life on the road in a camper van that's more like a luxury apartment on wheels? Step inside this jaw-dropping, custom-built Ram ProMaster 3500 van by Humble Road, designed for a solo traveler with a passion for adventure and craftsmanship.\n\nJoin me, Patrick Botticelli, as I get an exclusive sneak peek at this van before its owner takes delivery. We'll explore a van conversion unlike any you've seen before, featuring mind-blowing innovations and clever solutions for full-time living. From a stunning, retractable outdoor workbench to a hidden, slide-out indoor shower and toilet, every inch of this camper is engineered with purpose and elegance.\n\nWhat you'll discover inside this ultimate camper van tour:\n\nA \"Macintosh\" EcoFlow Power System: See how this user-friendly electrical setup provides 10,000 watt-hours of lithium power, keeping you charged and ready for anything.\n\nThe Ultimate Van Life Workbench: An absolute first! A real, built-in workbench with industry-standard 20mm holes, perfect for hobbies like fly-tying, silk-screening, and woodworking.\n\nThe Hidden Bathroom Revolution: A brilliant, space-saving design with a slide-out shower and a composting toilet that disappears into the wall.\n\nFree Hot Water On Demand: Learn about the glycol heating system that uses the van's engine to heat water while you drive.\n\nSmart Storage & Custom Details: Discover a full-size pantry, deep drawers, and unique, handcrafted features like beetle kill pine cabinetry and elegant custom handles.\n\nIf you're looking for van life inspiration, DIY conversion ideas, or just love seeing incredible engineering, you won't want to miss this tour!\n\nThey Hid a Full Bathroom in this Camper Van! (Unbelievable Space-Saving Design)\n\nChapter Selections for the Video\n0:00 - Introduction to the Ram ProMaster Tour\n0:30 - The Stunning Exterior & Custom Features\n1:59 - The Garage & EcoFlow Electrical System\n3:45 - Water Heater & Outdoor Amenities\n6:19 - Inside the Van: The Kitchen & Galley\n10:07 - The Amazing Fold-Out Workbench\n11:24 - The Kitchenette & Unique Van Storage\n17:00 - The Hidden, Slide-Out Shower Reveal\n20:45 - The Cockpit & Final Details\n21:50 - Interview Wrap-Up\n\n#vanlife\n#campervan\n#rampromaster\n#vanconversion \n\nFollow George & Humble Road:\nYouTube @HumbleRoad \nWebsite https://www.humbleroad.tv/\n\nThis channel explores the exciting world of vanlife, with your host Patrick Botticelli, showcasing custom camper van builds, 4x4 off-road adventures, and DIY conversion projects. Join Patrick for in-depth RV tours and inspiring travel stories!\n\nNew videos every Saturday at 10am eastern. Please subscribe for more awesome video tours. https://www.youtube.com/newjerseyoutdooradventures?sub_confirmation=1\n\nNew Jersey Outdoor Adventures With Patrick Botticelli Website\nhttps://newjerseyoutdooradventures.com/\n\nFollow New Jersey Outdoor Adventures on Social\nhttps://www.instagram.com/patrick_njoa\nhttps://www.facebook.com/newjerseyoutdooradventures/\n\nNJOA Merchandise\nhttps://www.youtube.com/channel/UCZ4P6JaFzImeSWPAr3gGGCQ/store\n\nThumbnail Art by \nhttp://www.motivedezign.com/\n\nMusic By Epidemic Sounds\nhttps://share.epidemicsound.com/7r0ua5\n\nAll content owned and distributed by NJO Rental Adventures LLC.", "duration" => 1429, "filename" => "/downloads/Vanlife/2025-09-20 He Hid a Full Bathroom in this Camper Van! (Unbelievable Genius Space-Saving Design)/He Hid a Full Bathroom in this Camper Van! (Unbelievable Genius Space-Saving Design) [nWafde7cTCY].mp4", "id" => "nWafde7cTCY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=nWafde7cTCY", "playlist_index" => 128, "timestamp" => 1758376883, "title" => "He Hid a Full Bathroom in this Camper Van! (Unbelievable Genius Space-Saving Design)", "upload_date" => "20250920"} 11:05:04.696 [debug] QUERY OK source="sources" db=0.1ms idle=1141.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:05:04.696 [debug] QUERY OK source="sources" db=0.1ms idle=1141.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:04.696 [debug] QUERY OK source="media_items" db=0.4ms idle=552.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-20 14:01:23Z], 10] 11:05:04.698 [debug] QUERY OK source="media_items" db=1.3ms idle=142.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This One-Off Camper Van Has a Mind-Blowingly Creative Design With a Genius Workshop.\n\nEver dreamed of living life on the road in a camper van that's more like a luxury apartment on wheels? Step inside this jaw-dropping, custom-built Ram ProMaster 3500 van by Humble Road, designed for a solo traveler with a passion for adventure and craftsmanship.\n\nJoin me, Patrick Botticelli, as I get an exclusive sneak peek at this van before its owner takes delivery. We'll explore a van conversion unlike any you've seen before, featuring mind-blowing innovations and clever solutions for full-time living. From a stunning, retractable outdoor workbench to a hidden, slide-out indoor shower and toilet, every inch of this camper is engineered with purpose and elegance.\n\nWhat you'll discover inside this ultimate camper van tour:\n\nA \"Macintosh\" EcoFlow Power System: See how this user-friendly electrical setup provides 10,000 watt-hours of lithium power, keeping you charged and ready for anything.\n\nThe Ultimate Van Life Workbench: An absolute first! A real, built-in workbench with industry-standard 20mm holes, perfect for hobbies like fly-tying, silk-screening, and woodworking.\n\nThe Hidden Bathroom Revolution: A brilliant, space-saving design with a slide-out shower and a composting toilet that disappears into the wall.\n\nFree Hot Water On Demand: Learn about the glycol heating system that uses the van's engine to heat water while you drive.\n\nSmart Storage & Custom Details: Discover a full-size pantry, deep drawers, and unique, handcrafted features like beetle kill pine cabinetry and elegant custom handles.\n\nIf you're looking for van life inspiration, DIY conversion ideas, or just love seeing incredible engineering, you won't want to miss this tour!\n\nThey Hid a Full Bathroom in this Camper Van! (Unbelievable Space-Saving Design)\n\nChapter Selections for the Video\n0:00 - Introduction to the Ram ProMaster Tour\n0:30 - The Stunning Exterior & Custom Features\n1:59 - The Garage & EcoFlow Electrical System\n3:45 - Water Heater & Outdoor Amenities\n6:19 - Inside the Van: The Kitchen & Galley\n10:07 - The Amazing Fold-Out Workbench\n11:24 - The Kitchenette & Unique Van Storage\n17:00 - The Hidden, Slide-Out Shower Reveal\n20:45 - The Cockpit & Final Details\n21:50 - Interview Wrap-Up\n\n#vanlife\n#campervan\n#rampromaster\n#vanconversion \n\nFollow George & Humble Road:\nYouTube @HumbleRoad \nWebsite https://www.humbleroad.tv/\n\nThis channel explores the exciting world of vanlife, with your host Patrick Botticelli, showcasing custom camper van builds, 4x4 off-road adventures, and DIY conversion projects. Join Patrick for in-depth RV tours and inspiring travel stories!\n\nNew videos every Saturday at 10am eastern. Please subscribe for more awesome video tours. https://www.youtube.com/newjerseyoutdooradventures?sub_confirmation=1\n\nNew Jersey Outdoor Adventures With Patrick Botticelli Website\nhttps://newjerseyoutdooradventures.com/\n\nFollow New Jersey Outdoor Adventures on Social\nhttps://www.instagram.com/patrick_njoa\nhttps://www.facebook.com/newjerseyoutdooradventures/\n\nNJOA Merchandise\nhttps://www.youtube.com/channel/UCZ4P6JaFzImeSWPAr3gGGCQ/store\n\nThumbnail Art by \nhttp://www.motivedezign.com/\n\nMusic By Epidemic Sounds\nhttps://share.epidemicsound.com/7r0ua5\n\nAll content owned and distributed by NJO Rental Adventures LLC.", "He Hid a Full Bathroom in this Camper Van! (Unbelievable Genius Space-Saving Design)", "1c50d3ea-98eb-43f6-a700-42728bc13034", 10, [], 1429, false, "nWafde7cTCY", "https://www.youtube.com/watch?v=nWafde7cTCY", 128, "/downloads/Vanlife/2025-09-20 He Hid a Full Bathroom in this Camper Van! (Unbelievable Genius Space-Saving Design)/He Hid a Full Bathroom in this Camper Van! (Unbelievable Genius Space-Saving Design) [nWafde7cTCY].mp4", false, false, false, 1, ~U[2025-09-20 14:01:23Z], ~U[2026-07-11 15:05:04Z], ~U[2026-07-11 15:05:04Z], "This One-Off Camper Van Has a Mind-Blowingly Creative Design With a Genius Workshop.\n\nEver dreamed of living life on the road in a camper van that's more like a luxury apartment on wheels? Step inside this jaw-dropping, custom-built Ram ProMaster 3500 van by Humble Road, designed for a solo traveler with a passion for adventure and craftsmanship.\n\nJoin me, Patrick Botticelli, as I get an exclusive sneak peek at this van before its owner takes delivery. We'll explore a van conversion unlike any you've seen before, featuring mind-blowing innovations and clever solutions for full-time living. From a stunning, retractable outdoor workbench to a hidden, slide-out indoor shower and toilet, every inch of this camper is engineered with purpose and elegance.\n\nWhat you'll discover inside this ultimate camper van tour:\n\nA \"Macintosh\" EcoFlow Power System: See how this user-friendly electrical setup provides 10,000 watt-hours of lithium power, keeping you charged and ready for anything.\n\nThe Ultimate Van Life Workbench: An absolute first! A real, built-in workbench with industry-standard 20mm holes, perfect for hobbies like fly-tying, silk-screening, and woodworking.\n\nThe Hidden Bathroom Revolution: A brilliant, space-saving design with a slide-out shower and a composting toilet that disappears into the wall.\n\nFree Hot Water On Demand: Learn about the glycol heating system that uses the van's engine to heat water while you drive.\n\nSmart Storage & Custom Details: Discover a full-size pantry, deep drawers, and unique, handcrafted features like beetle kill pine cabinetry and elegant custom handles.\n\nIf you're looking for van life inspiration, DIY conversion ideas, or just love seeing incredible engineering, you won't want to miss this tour!\n\nThey Hid a Full Bathroom in this Camper Van! (Unbelievable Space-Saving Design)\n\nChapter Selections for the Video\n0:00 - Introduction to the Ram ProMaster Tour\n0:30 - The Stunning Exterior & Custom Features\n1:59 - The Garage & EcoFlow Electrical System\n3:45 - Water Heater & Outdoor Amenities\n6:19 - Inside the Van: The Kitchen & Galley\n10:07 - The Amazing Fold-Out Workbench\n11:24 - The Kitchenette & Unique Van Storage\n17:00 - The Hidden, Slide-Out Shower Reveal\n20:45 - The Cockpit & Final Details\n21:50 - Interview Wrap-Up\n\n#vanlife\n#campervan\n#rampromaster\n#vanconversion \n\nFollow George & Humble Road:\nYouTube @HumbleRoad \nWebsite https://www.humbleroad.tv/\n\nThis channel explores the exciting world of vanlife, with your host Patrick Botticelli, showcasing custom camper van builds, 4x4 off-road adventures, and DIY conversion projects. Join Patrick for in-depth RV tours and inspiring travel stories!\n\nNew videos every Saturday at 10am eastern. Please subscribe for more awesome video tours. https://www.youtube.com/newjerseyoutdooradventures?sub_confirmation=1\n\nNew Jersey Outdoor Adventures With Patrick Botticelli Website\nhttps://newjerseyoutdooradventures.com/\n\nFollow New Jersey Outdoor Adventures on Social\nhttps://www.instagram.com/patrick_njoa\nhttps://www.facebook.com/newjerseyoutdooradventures/\n\nNJOA Merchandise\nhttps://www.youtube.com/channel/UCZ4P6JaFzImeSWPAr3gGGCQ/store\n\nThumbnail Art by \nhttp://www.motivedezign.com/\n\nMusic By Epidemic Sounds\nhttps://share.epidemicsound.com/7r0ua5\n\nAll content owned and distributed by NJO Rental Adventures LLC.", "He Hid a Full Bathroom in this Camper Van! (Unbelie (truncated) 11:05:04.699 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [10] 11:05:04.699 [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] 11:05:04.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 [10328] 11:05:04.699 [debug] Current batch of media processed. Will check again in 1000ms 11:05:05.700 [debug] Current batch of media processed. Will check again in 1000ms 11:05:06.701 [debug] Current batch of media processed. Will check again in 1000ms 11:05:07.702 [debug] Current batch of media processed. Will check again in 1000ms 11:05:08.703 [debug] Current batch of media processed. Will check again in 1000ms 11:05:09.704 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "#vanconversion #vanlife #campervan #vanbuild #adventure #luxuryhomes #luxurydesign #diy #diyprojects #woodworking", "duration" => 59, "filename" => "/downloads/Vanlife/2024-03-31 60 Second VAN BUILD | Luxury Design/60 Second VAN BUILD | Luxury Design [-pbaWguwjwk].mp4", "id" => "-pbaWguwjwk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-pbaWguwjwk", "playlist_index" => 129, "timestamp" => 1711915238, "title" => "60 Second VAN BUILD | Luxury Design", "upload_date" => "20240331"} 11:05:09.705 [debug] QUERY OK source="sources" db=0.2ms idle=1150.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:05:09.705 [debug] QUERY OK source="sources" db=0.1ms idle=1150.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:09.705 [debug] QUERY OK source="media_items" db=0.4ms idle=1151.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-31 20:00:38Z], 10] 11:05:09.706 [debug] QUERY OK source="media_items" db=0.4ms idle=1151.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#vanconversion #vanlife #campervan #vanbuild #adventure #luxuryhomes #luxurydesign #diy #diyprojects #woodworking", "60 Second VAN BUILD | Luxury Design", "5f230d2f-8703-46cb-8476-31f4934a97dd", 10, [], 59, false, "-pbaWguwjwk", "https://www.youtube.com/watch?v=-pbaWguwjwk", 129, "/downloads/Vanlife/2024-03-31 60 Second VAN BUILD | Luxury Design/60 Second VAN BUILD | Luxury Design [-pbaWguwjwk].mp4", false, false, true, 1, ~U[2024-03-31 20:00:38Z], ~U[2026-07-11 15:05:09Z], ~U[2026-07-11 15:05:09Z], "#vanconversion #vanlife #campervan #vanbuild #adventure #luxuryhomes #luxurydesign #diy #diyprojects #woodworking", "60 Second VAN BUILD | Luxury Design", 10, 59, false, "-pbaWguwjwk", "https://www.youtube.com/watch?v=-pbaWguwjwk", "/downloads/Vanlife/2024-03-31 60 Second VAN BUILD | Luxury Design/60 Second VAN BUILD | Luxury Design [-pbaWguwjwk].mp4", true, ~U[2024-03-31 20:00:38Z]] 11:05:09.707 [debug] QUERY OK source="sources" db=0.1ms idle=557.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:09.707 [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] 11:05:09.707 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10330] 11:05:09.707 [debug] Current batch of media processed. Will check again in 1000ms 11:05:10.708 [debug] Current batch of media processed. Will check again in 1000ms 11:05:11.709 [debug] Current batch of media processed. Will check again in 1000ms 11:05:12.710 [debug] Current batch of media processed. Will check again in 1000ms 11:05:13.711 [debug] Current batch of media processed. Will check again in 1000ms 11:05:14.712 [debug] Current batch of media processed. Will check again in 1000ms 11:05:15.713 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, we take a quick tour of the original Odyssey and then head into our partner warehouse to check out the 11 Odyssey vans currently in production.\n\nEvery Odyssey is built to order, with the ability to make select custom changes such as color schemes and exterior modifications. All builds are RV certified, Mercedes-Benz certified, and JD Power listed. Financing options are also available.\n\nMention Code “Ravizza” For A Free Ooni Pizza Oven! (when you sign a build)\n\nIf you’re interested in commissioning an Odyssey build, reach out through the links below to schedule a call.\n\nIf you’re interested in the original Odyssey, reach out directly.\n\n⸻\n\nLinks & Contact:\n\n📸 Instagram: @lucasravizza https://www.instagram.com/lucasravizza?igsh=NTc4MTIwNjQ2YQ%3D%3D&utm_source=qr\n\n📧 Email: ravizzaluxuryvans@gmail.com\n\n🌐 Website: www.ravizzaluxuryvans.com https://www.ravizzaluxuryvans.com\n\n🎥 Odyssey Lite Tour: https://youtu.be/L_maps8iHQE?si=nkGkapBZ9Mp7drFx\n\nVanspeed Capsule: LUCAS10 for 10% off https://thevanmart.com/products/vanspeed-capsules?variant=45336497553722&country=US¤cy=USD&utm_medium=product_sync&utm_source=google&utm_content=sag_organic&utm_campaign=sag_organic&gad_source=1&gad_campaignid=22296682680&gbraid=0AAAAA-cgionlmq16cWGtcah3bRM4ht-Oo&gclid=CjwKCAiA4KfLBhB0EiwAUY7GAcHK-f0W0RAT_YRXjLiMlimiQ_bwNue91uBXwQi0jqWsdOS5FVJn0BoCtOAQAvD_BwE", "duration" => 819, "filename" => "/downloads/Vanlife/2026-01-16 Quick Luxury Van Tour and A Look At Production/Quick Luxury Van Tour and A Look At Production [E1D0psY49hk].mp4", "id" => "E1D0psY49hk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=E1D0psY49hk", "playlist_index" => 130, "timestamp" => 1768584403, "title" => "Quick Luxury Van Tour and A Look At Production", "upload_date" => "20260116"} 11:05:15.714 [debug] QUERY OK source="sources" db=0.2ms idle=556.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:05:15.714 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:15.714 [debug] QUERY OK source="media_items" db=0.3ms idle=160.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-16 17:26:43Z], 10] 11:05:15.716 [debug] QUERY OK source="media_items" db=0.8ms idle=160.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Today, we take a quick tour of the original Odyssey and then head into our partner warehouse to check out the 11 Odyssey vans currently in production.\n\nEvery Odyssey is built to order, with the ability to make select custom changes such as color schemes and exterior modifications. All builds are RV certified, Mercedes-Benz certified, and JD Power listed. Financing options are also available.\n\nMention Code “Ravizza” For A Free Ooni Pizza Oven! (when you sign a build)\n\nIf you’re interested in commissioning an Odyssey build, reach out through the links below to schedule a call.\n\nIf you’re interested in the original Odyssey, reach out directly.\n\n⸻\n\nLinks & Contact:\n\n📸 Instagram: @lucasravizza https://www.instagram.com/lucasravizza?igsh=NTc4MTIwNjQ2YQ%3D%3D&utm_source=qr\n\n📧 Email: ravizzaluxuryvans@gmail.com\n\n🌐 Website: www.ravizzaluxuryvans.com https://www.ravizzaluxuryvans.com\n\n🎥 Odyssey Lite Tour: https://youtu.be/L_maps8iHQE?si=nkGkapBZ9Mp7drFx\n\nVanspeed Capsule: LUCAS10 for 10% off https://thevanmart.com/products/vanspeed-capsules?variant=45336497553722&country=US¤cy=USD&utm_medium=product_sync&utm_source=google&utm_content=sag_organic&utm_campaign=sag_organic&gad_source=1&gad_campaignid=22296682680&gbraid=0AAAAA-cgionlmq16cWGtcah3bRM4ht-Oo&gclid=CjwKCAiA4KfLBhB0EiwAUY7GAcHK-f0W0RAT_YRXjLiMlimiQ_bwNue91uBXwQi0jqWsdOS5FVJn0BoCtOAQAvD_BwE", "Quick Luxury Van Tour and A Look At Production", "040a58fd-c50c-4826-8bd1-0a8caee71789", 10, [], 819, false, "E1D0psY49hk", "https://www.youtube.com/watch?v=E1D0psY49hk", 130, "/downloads/Vanlife/2026-01-16 Quick Luxury Van Tour and A Look At Production/Quick Luxury Van Tour and A Look At Production [E1D0psY49hk].mp4", false, false, false, 1, ~U[2026-01-16 17:26:43Z], ~U[2026-07-11 15:05:15Z], ~U[2026-07-11 15:05:15Z], "Today, we take a quick tour of the original Odyssey and then head into our partner warehouse to check out the 11 Odyssey vans currently in production.\n\nEvery Odyssey is built to order, with the ability to make select custom changes such as color schemes and exterior modifications. All builds are RV certified, Mercedes-Benz certified, and JD Power listed. Financing options are also available.\n\nMention Code “Ravizza” For A Free Ooni Pizza Oven! (when you sign a build)\n\nIf you’re interested in commissioning an Odyssey build, reach out through the links below to schedule a call.\n\nIf you’re interested in the original Odyssey, reach out directly.\n\n⸻\n\nLinks & Contact:\n\n📸 Instagram: @lucasravizza https://www.instagram.com/lucasravizza?igsh=NTc4MTIwNjQ2YQ%3D%3D&utm_source=qr\n\n📧 Email: ravizzaluxuryvans@gmail.com\n\n🌐 Website: www.ravizzaluxuryvans.com https://www.ravizzaluxuryvans.com\n\n🎥 Odyssey Lite Tour: https://youtu.be/L_maps8iHQE?si=nkGkapBZ9Mp7drFx\n\nVanspeed Capsule: LUCAS10 for 10% off https://thevanmart.com/products/vanspeed-capsules?variant=45336497553722&country=US¤cy=USD&utm_medium=product_sync&utm_source=google&utm_content=sag_organic&utm_campaign=sag_organic&gad_source=1&gad_campaignid=22296682680&gbraid=0AAAAA-cgionlmq16cWGtcah3bRM4ht-Oo&gclid=CjwKCAiA4KfLBhB0EiwAUY7GAcHK-f0W0RAT_YRXjLiMlimiQ_bwNue91uBXwQi0jqWsdOS5FVJn0BoCtOAQAvD_BwE", "Quick Luxury Van Tour and A Look At Production", 10, 819, false, "E1D0psY49hk", "https://www.youtube.com/watch?v=E1D0psY49hk", "/downloads/Vanlife/2026-01-16 Quick Luxury Van Tour and A Look At Production/Quick Luxury Van Tour and A Look At Production [E1D0psY49hk].mp4", false, ~U[2026-01-16 17:26:43Z]] 11:05:15.716 [debug] QUERY OK source="sources" db=0.1ms idle=161.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:15.716 [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] 11:05:15.717 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10333] 11:05:15.717 [debug] Current batch of media processed. Will check again in 1000ms 11:05:16.717 [debug] Current batch of media processed. Will check again in 1000ms 11:05:17.718 [debug] Current batch of media processed. Will check again in 1000ms 11:05:18.719 [debug] Current batch of media processed. Will check again in 1000ms 11:05:19.720 [debug] Current batch of media processed. Will check again in 1000ms 11:05:20.721 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 22, "filename" => "/downloads/Vanlife/2026-04-24 Odyssey Lite | Best 144” Campervan Layout/Odyssey Lite | Best 144” Campervan Layout [xViUK_KBPgA].mp4", "id" => "xViUK_KBPgA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xViUK_KBPgA", "playlist_index" => 131, "timestamp" => 1777054418, "title" => "Odyssey Lite | Best 144” Campervan Layout", "upload_date" => "20260424"} 11:05:20.722 [debug] QUERY OK source="sources" db=0.1ms idle=1167.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:05:20.722 [debug] QUERY OK source="sources" db=0.0ms idle=1167.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:20.722 [debug] QUERY OK source="media_items" db=0.3ms idle=1167.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-24 18:13:38Z], 10] 11:05:20.723 [debug] QUERY OK source="media_items" db=0.3ms idle=1168.5ms INSERT INTO "media_items" AS m0 ("title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Odyssey Lite | Best 144” Campervan Layout", "9ff8f9b9-4898-4311-ad4b-e961e9366c48", 10, [], 22, false, "xViUK_KBPgA", "https://www.youtube.com/watch?v=xViUK_KBPgA", 131, "/downloads/Vanlife/2026-04-24 Odyssey Lite | Best 144” Campervan Layout/Odyssey Lite | Best 144” Campervan Layout [xViUK_KBPgA].mp4", false, false, true, 1, ~U[2026-04-24 18:13:38Z], ~U[2026-07-11 15:05:20Z], ~U[2026-07-11 15:05:20Z], "", "Odyssey Lite | Best 144” Campervan Layout", 10, 22, false, "xViUK_KBPgA", "https://www.youtube.com/watch?v=xViUK_KBPgA", "/downloads/Vanlife/2026-04-24 Odyssey Lite | Best 144” Campervan Layout/Odyssey Lite | Best 144” Campervan Layout [xViUK_KBPgA].mp4", true, ~U[2026-04-24 18:13:38Z]] 11:05:20.723 [debug] QUERY OK source="sources" db=0.1ms idle=561.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:20.724 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:05:20.724 [debug] QUERY OK source="media_items" db=0.2ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10335] 11:05:20.724 [debug] Current batch of media processed. Will check again in 1000ms 11:05:21.725 [debug] Current batch of media processed. Will check again in 1000ms 11:05:22.726 [debug] Current batch of media processed. Will check again in 1000ms 11:05:23.727 [debug] Current batch of media processed. Will check again in 1000ms 11:05:24.728 [debug] Current batch of media processed. Will check again in 1000ms 11:05:25.729 [debug] Current batch of media processed. Will check again in 1000ms 11:05:26.730 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Video of how we build an indoor shower in a van.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1880, "filename" => "/downloads/Vanlife/2025-08-02 How We Build a Shower Inside a Van. Pro builder shares tips#/How We Build a Shower Inside a Van. Pro builder shares tips. [bObOPi8ktm0].mkv", "id" => "bObOPi8ktm0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bObOPi8ktm0", "playlist_index" => 132, "timestamp" => 1754154538, "title" => "How We Build a Shower Inside a Van. Pro builder shares tips.", "upload_date" => "20250802"} 11:05:26.730 [debug] QUERY OK source="sources" db=0.1ms idle=561.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:05:26.731 [debug] QUERY OK source="sources" db=0.1ms idle=176.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:26.731 [debug] QUERY OK source="media_items" db=0.4ms idle=176.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-02 17:08:58Z], 10] 11:05:26.733 [debug] QUERY OK source="media_items" db=1.4ms idle=177.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Video of how we build an indoor shower in a van.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "How We Build a Shower Inside a Van. Pro builder shares tips.", "d9357ff4-4571-47ec-8df6-1aec5d14856a", 10, [], 1880, false, "bObOPi8ktm0", "https://www.youtube.com/watch?v=bObOPi8ktm0", 132, "/downloads/Vanlife/2025-08-02 How We Build a Shower Inside a Van. Pro builder shares tips#/How We Build a Shower Inside a Van. Pro builder shares tips. [bObOPi8ktm0].mkv", false, false, false, 1, ~U[2025-08-02 17:08:58Z], ~U[2026-07-11 15:05:26Z], ~U[2026-07-11 15:05:26Z], "Video of how we build an indoor shower in a van.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "How We Build a Shower Inside a Van. Pro builder shares tips.", 10, 1880, false, "bObOPi8ktm0", "https://www.youtube.com/watch?v=bObOPi8ktm0", "/downloads/Vanlife/2025-08-02 How We Build a Shower Inside a Van. Pro builder shares tips#/How We Build a Shower Inside a Van. Pro builder shares tips. [bObOPi8ktm0].mkv", false, ~U[2025-08-02 17:08:58Z]] 11:05:26.734 [debug] QUERY OK source="sources" db=0.2ms idle=179.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:26.734 [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] 11:05:26.734 [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 [10337] 11:05:26.734 [debug] Current batch of media processed. Will check again in 1000ms 11:05:27.735 [debug] Current batch of media processed. Will check again in 1000ms 11:05:28.736 [debug] Current batch of media processed. Will check again in 1000ms 11:05:29.737 [debug] Current batch of media processed. Will check again in 1000ms 11:05:30.490 [info] {"source":"oban","duration":543,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:05:30.738 [debug] Current batch of media processed. Will check again in 1000ms 11:05:31.739 [debug] Current batch of media processed. Will check again in 1000ms 11:05:32.740 [debug] Current batch of media processed. Will check again in 1000ms 11:05:33.741 [debug] Current batch of media processed. Will check again in 1000ms 11:05:33.859 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLnU_xhH1pUoFPO7og8lXSIOIN4F5izYV5 --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Vanlife/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:2160,+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/ba/2a/ba2ac667873e465533b972e0c20c57917225a33ffa63b0d4127468c1eec1abfa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 11:05:33.862 [debug] Gracefully stopping file follower 11:05:33.862 [debug] QUERY OK source="sources" db=0.3ms idle=1307.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [10] 11:05:33.863 [debug] QUERY OK source="sources" db=0.1ms idle=1308.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:33.863 [debug] QUERY OK source="media_items" db=0.5ms idle=1308.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 22:46:49Z], 10] 11:05:33.865 [debug] QUERY OK source="media_items" db=1.4ms idle=688.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This van is for sale. Price: $68,500\n\nIncludes 1 year build warranty\n\nI built this van in 2021 used it for a bit and sold it to a travel nurse. He was able to use it for his work until he no longer needed it. Last year I had the opportunity to buy it back! I used it for fun here and there, fully remodeled it to look like my current designs, and upgraded some things to ensure it functions for many years.\n\nSelling because it’s time to build my next sprinter. I also have a truck camper now so too many vehicles.\n\nEmail: ravizzaluxuryvans@gmail.com\n\nInstagram: https://www.instagram.com/lucasravizza?igsh=NTc4MTIwNjQ2YQ%3D%3D&utm_source=qr\n\nVan: 2017 Ram Promaster\n\n• 133,500 miles\n• New Remanufactured ATK engine installed at 124,000 miles\n• New tires, a/c compressor, oil cooler, hoses, and seals.", "Before You Spend $100k+ On A Van, Watch This!", "bb5a80e4-b3cc-475a-a00a-8cc8ff68d683", 10, [], 955, false, "UgLUT4x3eCw", "https://www.youtube.com/watch?v=UgLUT4x3eCw", 1, "/downloads/Vanlife/2026-05-14 Before You Spend $100k+ On A Van, Watch This!/Before You Spend $100k+ On A Van, Watch This! [UgLUT4x3eCw].mp4", false, false, false, 1, ~U[2026-05-14 22:46:49Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "This van is for sale. Price: $68,500\n\nIncludes 1 year build warranty\n\nI built this van in 2021 used it for a bit and sold it to a travel nurse. He was able to use it for his work until he no longer needed it. Last year I had the opportunity to buy it back! I used it for fun here and there, fully remodeled it to look like my current designs, and upgraded some things to ensure it functions for many years.\n\nSelling because it’s time to build my next sprinter. I also have a truck camper now so too many vehicles.\n\nEmail: ravizzaluxuryvans@gmail.com\n\nInstagram: https://www.instagram.com/lucasravizza?igsh=NTc4MTIwNjQ2YQ%3D%3D&utm_source=qr\n\nVan: 2017 Ram Promaster\n\n• 133,500 miles\n• New Remanufactured ATK engine installed at 124,000 miles\n• New tires, a/c compressor, oil cooler, hoses, and seals.", "Before You Spend $100k+ On A Van, Watch This!", 10, 955, false, "UgLUT4x3eCw", "https://www.youtube.com/watch?v=UgLUT4x3eCw", "/downloads/Vanlife/2026-05-14 Before You Spend $100k+ On A Van, Watch This!/Before You Spend $100k+ On A Van, Watch This! [UgLUT4x3eCw].mp4", false, ~U[2026-05-14 22:46:49Z]] 11:05:33.866 [debug] QUERY OK source="sources" db=0.2ms idle=311.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:33.866 [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-12-26 17:00:52Z], 10] 11:05:33.868 [debug] QUERY OK source="media_items" db=1.0ms idle=3.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Kirby has brought us another masterpiece of a van build, but this time he had budget in mind and kept the cost down and still keeps the luxury look. The link to his listing for sale is below and I'm guessing this won't last long at the price point.\n\nKirby's Van for sale:\nhttps://vanlifetrader.com/listing/meet-obsidian-2024-mercedes-sprinter-awd/\n\nThank you to Kyle for doing the video tour. Make sure to check his channel:\n@ChopShopCrew \n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nWebsite: https://www.jarrodtocci.com\nMerch: https://jarrodtocci.com/store\nAmazon Store: https://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://www.youtube.com/channel/UCn9M1J4P_Ou3sMi0oym158Q\n\nBatteries: Big Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nGet off grid electrical at RV Connections:\nhttps://rvsolarconnections.com/ref/1063/\nCode: JARRODT5\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nNomadik Customs does a lot of van builds and now services any rig, so if you have any issues bring it to them and they will get you back on the road:\nhttps://www.nomadikcustoms.com/\ninfo@nomadikcustoms.com\nservice@nomadikcustoms.com\n\nLove HEST as my Camping Mattress:\nhttps://hest.com/\nDiscount Code: Stay Tuned as it’s Seasonal\n\nStanley for Camping Gear\nCheck Back for Codes\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "Stealth and Beauty Rolled into This Van Tour", "f3947486-5b3c-421a-b7fc-d9a27e78bc1e", 10, [], 1328, false, "osj_hABF6lI", "https://www.youtube.com/watch?v=osj_hABF6lI", 2, "/downloads/Vanlife/2024-12-26 Stealth and Beauty Rolled into This Van Tour/Stealth and Beauty Rolled into This Van Tour [osj_hABF6lI].mp4", false, false, false, 1, ~U[2024-12-26 17:00:52Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Kirby has brought us another masterpiece of a van build, but this time he had budget in mind and kept the cost down and still keeps the luxury look. The link to his listing for sale is below and I'm guessing this won't last long at the price point.\n\nKirby's Van for sale:\nhttps://vanlifetrader.com/listing/meet-obsidian-2024-mercedes-sprinter-awd/\n\nThank you to Kyle for doing the video tour. Make sure to check his channel:\n@ChopShopCrew \n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nWebsite: https://www.jarrodtocci.com\nMerch: https://jarrodtocci.com/store\nAmazon Store: https://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://www.youtube.com/channel/UCn9M1J4P_Ou3sMi0oym158Q\n\nBatteries: Big Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nGet off grid electrical at RV Connections:\nhttps://rvsolarconnections.com/ref/1063/\nCode: JARRODT5\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nNomadik Customs does a lot of van builds and now services any rig, so if you have any issues bring it to them and they will get you back on the road:\nhttps://www.nomadikcustoms.com/\ninfo@nomadikcustoms.com\nservice@nomadikcustoms.com\n\nLove HEST as my Camping Mattress:\nhttps://hest.com/\nDiscount Code: Stay Tuned as it’s Seasonal\n\nStanley for Camping Gear\nCheck Back for Codes\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "Stealth and Beauty Rolled into This Van Tour", 10, 1328, false, "osj_hABF6lI", "https://www.youtube.com/watch?v=osj_hABF6lI", "/downloads/Vanlife/2024-12-26 Stealth and Beauty Rolled into This Van Tour/Stealth and Beauty Rolled into This Van Tour [osj_hABF6lI].mp4", false, ~U[2024-12-26 17:00:52Z]] 11:05:33.868 [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" = ?) [10] 11:05:33.869 [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[2020-09-20 12:00:12Z], 10] 11:05:33.870 [debug] QUERY OK source="media_items" db=0.5ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Mercedes Sprinter floor is fairly easy to work with. In this video I explain how and why I do what I do to insure a solid moisture-free sub floor system.\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#customvanbuild", "The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained.", "933763ce-05ad-40f3-916e-7290fa1d56dc", 10, [], 1299, false, "lLVWu5HR_dM", "https://www.youtube.com/watch?v=lLVWu5HR_dM", 3, "/downloads/Vanlife/2020-09-20 The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained#/The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained. [lLVWu5HR_dM].mp4", false, false, false, 1, ~U[2020-09-20 12:00:12Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "The Mercedes Sprinter floor is fairly easy to work with. In this video I explain how and why I do what I do to insure a solid moisture-free sub floor system.\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#customvanbuild", "The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained.", 10, 1299, false, "lLVWu5HR_dM", "https://www.youtube.com/watch?v=lLVWu5HR_dM", "/downloads/Vanlife/2020-09-20 The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained#/The idea of airflow to prevent mold and mildew. Sprinter sub floor system explained. [lLVWu5HR_dM].mp4", false, ~U[2020-09-20 12:00:12Z]] 11:05:33.870 [debug] QUERY OK source="sources" db=0.2ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:33.871 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-06 02:00:30Z], 10] 11:05:33.872 [debug] QUERY OK source="media_items" db=0.8ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We begin our five-part Portland Series at the Sutor House, designed in 1938 by celebrated Oregon architect Pietro Belluschi, it is a quiet and deeply considered work of early modernism nestled in the hills of Portland, Oregon. Drawing inspiration from traditional Japanese architecture, the home embraces restraint, natural materials, and a seamless relationship between interior and landscape, where light, shadow, and season become part of the architecture itself.\n\nSince 2013, Aric and Erin Wood have served as thoughtful stewards of the Sutor House, undertaking a careful restoration rooted in patience, research, and respect. In addition to reviving the home, they also restored the surrounding landscape, reawakening the lush greenery and Japanese inspired garden that frames the house. Rather than reinventing the property, their work sought to reveal it, bringing Belluschi’s original intent back into focus while allowing both the house and landscape to age with grace. What emerges is a living home that honors its past and continues its story.\n\nFilm Mick Aure @miccck\nPhotography Elias Tebache @socalarchitecture\nMusic Diego Castellanos @diegocastellanos\nSpecial Thanks to Aric & Erin Wood and Marisa Swenson \n\nDo you have a home that you believe could fit in our series? Please send us an email to connect. https://openspaceseries.com/contact \n\nIf you have a reputable company or organization and would like to sponsor our channel, click the link below: https://openspaceseries.com/contact", "Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour", "518bbcb4-abc0-4ee9-92a6-30d2d80703f2", 10, [], 778, false, "X0G-akdfeK4", "https://www.youtube.com/watch?v=X0G-akdfeK4", 4, "/downloads/Vanlife/2026-02-06 Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour/Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour [X0G-akdfeK4].mkv", false, false, false, 2, ~U[2026-02-06 02:00:30Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "We begin our five-part Portland Series at the Sutor House, designed in 1938 by celebrated Oregon architect Pietro Belluschi, it is a quiet and deeply considered work of early modernism nestled in the hills of Portland, Oregon. Drawing inspiration from traditional Japanese architecture, the home embraces restraint, natural materials, and a seamless relationship between interior and landscape, where light, shadow, and season become part of the architecture itself.\n\nSince 2013, Aric and Erin Wood have served as thoughtful stewards of the Sutor House, undertaking a careful restoration rooted in patience, research, and respect. In addition to reviving the home, they also restored the surrounding landscape, reawakening the lush greenery and Japanese inspired garden that frames the house. Rather than reinventing the property, their work sought to reveal it, bringing Belluschi’s original intent back into focus while allowing both the house and landscape to age with grace. What emerges is a living home that honors its past and continues its story.\n\nFilm Mick Aure @miccck\nPhotography Elias Tebache @socalarchitecture\nMusic Diego Castellanos @diegocastellanos\nSpecial Thanks to Aric & Erin Wood and Marisa Swenson \n\nDo you have a home that you believe could fit in our series? Please send us an email to connect. https://openspaceseries.com/contact \n\nIf you have a reputable company or organization and would like to sponsor our channel, click the link below: https://openspaceseries.com/contact", "Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour", 10, 778, false, "X0G-akdfeK4", "https://www.youtube.com/watch?v=X0G-akdfeK4", "/downloads/Vanlife/2026-02-06 Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour/Inside a 1938 Japanese-Inspired Home by Pietro Belluschi in Portland, Oregon | House Tour [X0G-akdfeK4].mkv", false, ~U[2026-02-06 02:00:30Z]] 11:05:33.872 [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" = ?) [10] 11:05:33.873 [debug] QUERY OK source="media_items" db=0.3ms idle=2.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-26 16:56:29Z], 10] 11:05:33.874 [debug] QUERY OK source="media_items" db=0.5ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This is Horizon. From the 1260 watts extendable solar panels to the modular sliding section of the van, the engineering pinnacle of my van-building career is finally done! The best part is, it’s for sale! Check the link in my bio for more details and inquiry about the build.", "This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan", "58c1827a-a473-44d4-8c3b-19798184e777", 10, [], 60, false, "HEytMmQ0kVk", "https://www.youtube.com/watch?v=HEytMmQ0kVk", 5, "/downloads/Vanlife/2024-10-26 This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan/This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan [HEytMmQ0kVk].mp4", false, false, true, 1, ~U[2024-10-26 16:56:29Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "This is Horizon. From the 1260 watts extendable solar panels to the modular sliding section of the van, the engineering pinnacle of my van-building career is finally done! The best part is, it’s for sale! Check the link in my bio for more details and inquiry about the build.", "This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan", 10, 60, false, "HEytMmQ0kVk", "https://www.youtube.com/watch?v=HEytMmQ0kVk", "/downloads/Vanlife/2024-10-26 This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan/This is the PINNACLE of Van-Building innovation!! #vanlife #vanbuild #innovation #vans #campervan [HEytMmQ0kVk].mp4", true, ~U[2024-10-26 16:56:29Z]] 11:05:33.874 [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" = ?) [10] 11:05:33.874 [debug] QUERY OK source="media_items" db=0.3ms 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[2023-05-07 15:00:04Z], 10] 11:05:33.876 [debug] QUERY OK source="media_items" db=0.7ms idle=2.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🚀 FREE Training - Zero-Cost Vanlife & More: https://bit.ly/3UO7hUT\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/lucasravizza/\n\nThis has to be the most impressive van conversion that we've featured on the channel in a long time! This campervan combines a highly intelligent design, with an impeccable finish, featuring some of the most hi quality attention to detail I've seen in a van conversion. A true masterpiece!\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "NEXT LEVEL luxury VAN CONVERSION // HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐", "c8f3a9f2-bfaf-4a7c-b099-e025b261d918", 10, [], 926, false, "7vIwyg-8dO4", "https://www.youtube.com/watch?v=7vIwyg-8dO4", 6, "/downloads/Vanlife/2023-05-07 NEXT LEVEL luxury VAN CONVERSION ⧸⧸ HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐/NEXT LEVEL luxury VAN CONVERSION ⧸⧸ HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐 [7vIwyg-8dO4].mp4", false, false, false, 1, ~U[2023-05-07 15:00:04Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "🚀 FREE Training - Zero-Cost Vanlife & More: https://bit.ly/3UO7hUT\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/lucasravizza/\n\nThis has to be the most impressive van conversion that we've featured on the channel in a long time! This campervan combines a highly intelligent design, with an impeccable finish, featuring some of the most hi quality attention to detail I've seen in a van conversion. A true masterpiece!\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "NEXT LEVEL luxury VAN CONVERSION // HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐", 10, 926, false, "7vIwyg-8dO4", "https://www.youtube.com/watch?v=7vIwyg-8dO4", "/downloads/Vanlife/2023-05-07 NEXT LEVEL luxury VAN CONVERSION ⧸⧸ HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐/NEXT LEVEL luxury VAN CONVERSION ⧸⧸ HIDDEN queen-sized bed, HUUUGE shower & INCREDIBLE cinema 🚐 [7vIwyg-8dO4].mp4", false, ~U[2023-05-07 15:00:04Z]] 11:05:33.876 [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" = ?) [10] 11:05:33.877 [debug] QUERY OK source="media_items" db=1.0ms 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[2022-09-22 14:00:20Z], 10] 11:05:33.880 [debug] QUERY OK source="media_items" db=2.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I'm at a loss of words with another creation done by Brandon.\n\nhttps://www.instagram.com/bucksd/\n\n**My Information and Products:**\nBrand Deals/Business Inquiries: brandon@thestation.io\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nPartnerships/Affiliates I personally work with:\nLooking for great batteries? These are the batteries in my Van and Jeep!\nReLion Battery:\nhttp://relionbattery.com?aff=6\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nVanLife Academy from Project VanLife:\nhttps://toccighost--projectvanlife.thrivecart.com/van-life-academy/\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products:\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nGuzzle H2O Water Filtration system:\nhttps://www.guzzleh2o.com?ref=6\nI use the portable one and the built-in one!\n\nLion Energy:\nhttps://lionenergy.com/discount/Ghost15?redirect=%2Fproducts%2Flion-safari-ut-1300%3Fafmc%3D5u\nDiscount Code: Ghost15\n\nEpoxy Used for Woodworking and any Finishing\nhttp://www.totalboat.com/\nDiscount Code: tbghost - for 10% off first order\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nThese are products I used and some I suggest, mostly amazon links:\nBEHIND THE WALLS:\nInsulation - Havelock Wool (link above)\nKilmat 50 mil 50 sqft Sound Deadener: https://amzn.to/33VgkJf\nFrost King FV516 Duct Insulation: https://amzn.to/360N9qT\n\n(*UPDATED PRODUCT LIST COMING SOON*)\nKITCHEN / BATH / WATER\nKitchen Faucet - https://amzn.to/2OVO4R6\nSink - https://amzn.to/2BwIxbT\nShower Head - https://amzn.to/31pfrFI \nShower Hose - https://amzn.to/2Bm8xqc\nShower Valve - https://amzn.to/32q8Ax9\nWater Pump - https://amzn.to/32ps0SD\nWater Accumulator - https://amzn.to/32kwwBX\nElectronic Ball Valve (used for gray water tank) - https://amzn.to/2OUmXWw\n7 Gallon Gray Water Tank - https://amzn.to/32lbQK2\nPortable Induction Burner - https://amzn.to/2BmXEo8\n\nHARDWARE / FINISHES\nRoof Vent - https://amzn.to/2nZFGFa\nDrawer Slides - https://amzn.to/33FzEIK\nDrawer Pulls - https://amzn.to/2BhfDwd\nMattress - https://amzn.to/35L5Hc3\nFloating Ceiling Lights - https://amzn.to/31sqwFP\nUnder Cabinet Lights - https://amzn.to/32vtwTy\nBedside Light - https://amzn.to/2OUs9K0\nCabinet and Drawer Latch - https://amzn.to/35J0v8H\nCabinet Hinge - https://amzn.to/2MM0058\nMurphy Bed Stopper - https://amzn.to/2IXS7IA\nTile (Stick on) - https://amzn.to/31phmda\nToilet - https://amzn.to/2Mnq4oi\n4 USB Outlet - https://amzn.to/32r08NV\n2 USB Outlet with 12v port - https://amzn.to/2VOoKxE\nEpoxy/Resin mix used for Tables - https://amzn.to/2Mp7E6I\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission, only if purchased. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "MOST Stealth, Super Luxury, Most EFFICIENT Van EVER", "d6cbc759-04a8-49dd-b8ed-9290d82e6822", 10, [], 1513, false, "ZSfd8nkhHT8", "https://www.youtube.com/watch?v=ZSfd8nkhHT8", 7, "/downloads/Vanlife/2022-09-22 MOST Stealth, Super Luxury, Most EFFICIENT Van EVER/MOST Stealth, Super Luxury, Most EFFICIENT Van EVER [ZSfd8nkhHT8].mp4", false, false, false, 1, ~U[2022-09-22 14:00:20Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "I'm at a loss of words with another creation done by Brandon.\n\nhttps://www.instagram.com/bucksd/\n\n**My Information and Products:**\nBrand Deals/Business Inquiries: brandon@thestation.io\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nPartnerships/Affiliates I personally work with:\nLooking for great batteries? These are the batteries in my Van and Jeep!\nReLion Battery:\nhttp://relionbattery.com?aff=6\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nVanLife Academy from Project VanLife:\nhttps://toccighost--projectvanlife.thrivecart.com/van-life-academy/\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products:\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nGuzzle H2O Water Filtration system:\nhttps://www.guzzleh2o.com?ref=6\nI use the portable one and the built-in one!\n\nLion Energy:\nhttps://lionenergy.com/discount/Ghost15?redirect=%2Fproducts%2Flion-safari-ut-1300%3Fafmc%3D5u\nDiscount Code: Ghost15\n\nEpoxy Used for Woodworking and any Finishing\nhttp://www.totalboat.com/\nDiscount Code: tbghost - for 10% off first order\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nThese are products I used and some I suggest, mostly amazon links:\nBEHIND THE WALLS:\nInsulation - Havelock Wool (link above)\nKilmat 50 mil 50 sqft Sound Deadener: https://amzn.to/33VgkJf\nFrost King FV516 Duct Insulation: https://amzn.to/360N9qT\n\n(*UPDATED PRODUCT LIST COMING SOON*)\nKITCHEN / BATH / WATER\nKitchen Faucet - https://amzn.to/2O (truncated) 11:05:33.881 [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" = ?) [10] 11:05:33.881 [debug] QUERY OK source="media_items" db=0.3ms idle=5.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 14:45:15Z], 10] 11:05:33.882 [debug] QUERY OK source="media_items" db=0.6ms idle=5.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Go to https://ground.news/superfastmatt to become a smarter news consumer and see every side of every story. Subscribe through my link for 40% off unlimited access this month.\n\nSuperfast Matt is supported by:\nBambu Lab: https://shareasale.com/r.cfm?b=2354730&u=4381285&m=138211&urllink=&afftrack=\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "The Laziest Possible Camper Van Conversion", "50655088-0eb3-4ebd-a1f1-e16004db5708", 10, [], 1047, false, "knswcZUSSHo", "https://www.youtube.com/watch?v=knswcZUSSHo", 8, "/downloads/Vanlife/2025-02-13 The Laziest Possible Camper Van Conversion/The Laziest Possible Camper Van Conversion [knswcZUSSHo].mkv", false, false, false, 1, ~U[2025-02-13 14:45:15Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Go to https://ground.news/superfastmatt to become a smarter news consumer and see every side of every story. Subscribe through my link for 40% off unlimited access this month.\n\nSuperfast Matt is supported by:\nBambu Lab: https://shareasale.com/r.cfm?b=2354730&u=4381285&m=138211&urllink=&afftrack=\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "The Laziest Possible Camper Van Conversion", 10, 1047, false, "knswcZUSSHo", "https://www.youtube.com/watch?v=knswcZUSSHo", "/downloads/Vanlife/2025-02-13 The Laziest Possible Camper Van Conversion/The Laziest Possible Camper Van Conversion [knswcZUSSHo].mkv", false, ~U[2025-02-13 14:45:15Z]] 11:05:33.883 [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" = ?) [10] 11:05:33.883 [debug] QUERY OK source="media_items" db=0.3ms idle=2.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-27 18:57:51Z], 10] 11:05:33.884 [debug] QUERY OK source="media_items" db=0.5ms idle=2.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out the new Bambu H2S: https://tidd.ly/47fTxdG\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "How To Make Your Bed (Disappear)", "4e32f3aa-2419-48e0-ab85-764d6a263a75", 10, [], 617, false, "_2hj0tR3uwY", "https://www.youtube.com/watch?v=_2hj0tR3uwY", 9, "/downloads/Vanlife/2025-08-27 How To Make Your Bed (Disappear)/How To Make Your Bed (Disappear) [_2hj0tR3uwY].mkv", false, false, false, 1, ~U[2025-08-27 18:57:51Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Check out the new Bambu H2S: https://tidd.ly/47fTxdG\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "How To Make Your Bed (Disappear)", 10, 617, false, "_2hj0tR3uwY", "https://www.youtube.com/watch?v=_2hj0tR3uwY", "/downloads/Vanlife/2025-08-27 How To Make Your Bed (Disappear)/How To Make Your Bed (Disappear) [_2hj0tR3uwY].mkv", false, ~U[2025-08-27 18:57:51Z]] 11:05:33.884 [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" = ?) [10] 11:05:33.885 [debug] QUERY OK source="media_items" db=0.4ms idle=2.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 16:12:02Z], 10] 11:05:33.886 [debug] QUERY OK source="media_items" db=0.6ms idle=2.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Bambu Lab Anniversary Sale: https://shareasale.com/r.cfm?b=2781275&u=4381285&m=138211&urllink=&afftrack=\n\nSuperfast Matt is Supported By:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nWizard artwork by: https://www.instagram.com/poyjeee/\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "The Challenges Of 3D Printing Large Parts", "614a5354-1826-4c38-9277-f3e3978dc85c", 10, [], 745, false, "bMIh2eKaBCY", "https://www.youtube.com/watch?v=bMIh2eKaBCY", 10, "/downloads/Vanlife/2025-07-10 The Challenges Of 3D Printing Large Parts/The Challenges Of 3D Printing Large Parts [bMIh2eKaBCY].mkv", false, false, false, 2, ~U[2025-07-10 16:12:02Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Bambu Lab Anniversary Sale: https://shareasale.com/r.cfm?b=2781275&u=4381285&m=138211&urllink=&afftrack=\n\nSuperfast Matt is Supported By:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\n\nWizard artwork by: https://www.instagram.com/poyjeee/\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "The Challenges Of 3D Printing Large Parts", 10, 745, false, "bMIh2eKaBCY", "https://www.youtube.com/watch?v=bMIh2eKaBCY", "/downloads/Vanlife/2025-07-10 The Challenges Of 3D Printing Large Parts/The Challenges Of 3D Printing Large Parts [bMIh2eKaBCY].mkv", false, ~U[2025-07-10 16:12:02Z]] 11:05:33.886 [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" = ?) [10] 11:05:33.886 [debug] QUERY OK source="media_items" db=0.3ms 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[2025-04-29 15:32:52Z], 10] 11:05:33.888 [debug] QUERY OK source="media_items" db=0.6ms idle=2.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Get the Apex 300 for as low as $900 when you bundle it with the B300K – tax and shipping included. Installment payment options available. Limited quantities available, Click here to order now 👉 https://bit.ly/4dolMHV\n#bluetti #apex300 #rv #van #diy\n\nSuperfast Matt is supported by:\nBambu Lab: https://shareasale.com/r.cfm?b=2354730&u=4381285&m=138211&urllink=&afftrack=\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\nDynamat and Dynaliner were provided for free by Dynamat for a previous project. \n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "Insulate Your Camper Van. Or Just Watch Me Do It. Whatever.", "6ba79a71-6475-4378-b9d8-e9b73ab7c557", 10, [], 1222, false, "Fs34gommXcI", "https://www.youtube.com/watch?v=Fs34gommXcI", 11, "/downloads/Vanlife/2025-04-29 Insulate Your Camper Van. Or Just Watch Me Do It. Whatever#/Insulate Your Camper Van. Or Just Watch Me Do It. Whatever. [Fs34gommXcI].mkv", false, false, false, 1, ~U[2025-04-29 15:32:52Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Get the Apex 300 for as low as $900 when you bundle it with the B300K – tax and shipping included. Installment payment options available. Limited quantities available, Click here to order now 👉 https://bit.ly/4dolMHV\n#bluetti #apex300 #rv #van #diy\n\nSuperfast Matt is supported by:\nBambu Lab: https://shareasale.com/r.cfm?b=2354730&u=4381285&m=138211&urllink=&afftrack=\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\nTires by Falken Tires: https://www.falkentire.com/wildpeak\nDynamat and Dynaliner were provided for free by Dynamat for a previous project. \n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt", "Insulate Your Camper Van. Or Just Watch Me Do It. Whatever.", 10, 1222, false, "Fs34gommXcI", "https://www.youtube.com/watch?v=Fs34gommXcI", "/downloads/Vanlife/2025-04-29 Insulate Your Camper Van. Or Just Watch Me Do It. Whatever#/Insulate Your Camper Van. Or Just Watch Me Do It. Whatever. [Fs34gommXcI].mkv", false, ~U[2025-04-29 15:32:52Z]] 11:05:33.888 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [10] 11:05:33.888 [debug] QUERY OK source="media_items" db=0.3ms 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[2021-02-21 16:31:59Z], 10] 11:05:33.890 [debug] QUERY OK source="media_items" db=1.0ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This is Andrew's budget Eathroamer truck conversion. Their diy overlanding truck conversion is an epic roamer for a fraction of the cost of an Earthroamer expedition vehicle.\nGET YOUR FREE LMNT SAMPLE PACK AT: https://drinklmnt.com/Florb\nJust pay for shipping\nSubscribe to our new channel: https://www.youtube.com/dylanmagaster2\nBECOME PART OF THE TEAM: https://www.patreon.com/FLORB\n\nFollow Andrew:\nhttps://www.instagram.com/andrew__muse/\nhttps://www.youtube.com/AndrewMuse\n\nFollow me on Social Media\nhttps://www.instagram.com/dylanmagaster\n\n\n\nBusiness inquires or music submissions:\nflorb@floatingorb.earth\n\n\n\nMusic: \nEpidemic Sound Affiliate link: https://mbsy.co/epidemicsound/FLORB\nFlightmode - Chris Shards\nWhen We Come Together (Instrumental Version) - Lindsey Abraham\nMy Own Two Hands - Lindsey Abraham\nBack to the Roots - Lindsey Abraham\nYour Woman - Lindsey Abraham\nSo Perfect - Lindsey Abraham\n\n\nFilmed by \n\nTroy Ozuna\nhttps://www.youtube.com/earthstory\n\nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\nEdited by \n\nJackson Peters\nhttp://jacksonhpeters.com/\nhttps://www.youtube.com/jacksonhpeters\nhttps://vimeo.com/jacksonhpeters\nhttps://www.instagram.com/jacksonhpeters/\n\nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\n\nCAMERA GEAR \nFull Gear List: https://kit.co/DylanMagaster", "This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer", "cf991d16-11b2-4b4e-8e55-6014f5fd36c1", 10, [], 980, false, "2grXkxwSlKg", "https://www.youtube.com/watch?v=2grXkxwSlKg", 12, "/downloads/Vanlife/2021-02-21 This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer/This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer [2grXkxwSlKg].mp4", false, false, false, 1, ~U[2021-02-21 16:31:59Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "This is Andrew's budget Eathroamer truck conversion. Their diy overlanding truck conversion is an epic roamer for a fraction of the cost of an Earthroamer expedition vehicle.\nGET YOUR FREE LMNT SAMPLE PACK AT: https://drinklmnt.com/Florb\nJust pay for shipping\nSubscribe to our new channel: https://www.youtube.com/dylanmagaster2\nBECOME PART OF THE TEAM: https://www.patreon.com/FLORB\n\nFollow Andrew:\nhttps://www.instagram.com/andrew__muse/\nhttps://www.youtube.com/AndrewMuse\n\nFollow me on Social Media\nhttps://www.instagram.com/dylanmagaster\n\n\n\nBusiness inquires or music submissions:\nflorb@floatingorb.earth\n\n\n\nMusic: \nEpidemic Sound Affiliate link: https://mbsy.co/epidemicsound/FLORB\nFlightmode - Chris Shards\nWhen We Come Together (Instrumental Version) - Lindsey Abraham\nMy Own Two Hands - Lindsey Abraham\nBack to the Roots - Lindsey Abraham\nYour Woman - Lindsey Abraham\nSo Perfect - Lindsey Abraham\n\n\nFilmed by \n\nTroy Ozuna\nhttps://www.youtube.com/earthstory\n\nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\nEdited by \n\nJackson Peters\nhttp://jacksonhpeters.com/\nhttps://www.youtube.com/jacksonhpeters\nhttps://vimeo.com/jacksonhpeters\nhttps://www.instagram.com/jacksonhpeters/\n\nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\n\nCAMERA GEAR \nFull Gear List: https://kit.co/DylanMagaster", "This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer", 10, 980, false, "2grXkxwSlKg", "https://www.youtube.com/watch?v=2grXkxwSlKg", "/downloads/Vanlife/2021-02-21 This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer/This Budget Overlanding Truck Conversion is a Fraction the Cost of an Earthroamer [2grXkxwSlKg].mp4", false, ~U[2021-02-21 16:31:59Z]] 11:05:33.890 [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" = ?) [10] 11:05:33.891 [debug] QUERY OK source="media_items" db=0.3ms idle=2.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-11 05:08:09Z], 10] 11:05:33.892 [debug] QUERY OK source="media_items" db=0.7ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["ConnecTen Internet: Use Discount code FLORB for 25$ off your first order\nhttps://connecteninternet.com/discount/FLORB\n\nSubscribe to our new channel: https://www.youtube.com/dylanmagaster2\nBECOME PART OF THE TEAM: https://www.patreon.com/FLORB\n\nFollow Wolfrigs:\nhttps://www.instagram.com/wolfrigsusa/?hl=en\nhttps://www.wolfrigs.com/\n\nFollow me on Social Media\nhttps://www.instagram.com/dylanmagaster\n\n\n\nBusiness inquires or music submissions:\nflorb@floatingorb.earth\n\n\n\nMusic: \nEpidemic Sound Affiliate link: \nhttps://share.epidemicsound.com/MVDGq\nLet's Have a Good Time - John Runefelt\nFamily Badass - Rockin' For Decades\nThe Aviator - Duke Herrington\nMagic Highway - Carvings\nI'm Not a Flower - par\nNeon Flame - Will Harrison\nEidewalk Shimmy - Guustavv\nWhere's the Party At - John Runefelt\n\nFilmed and edited by \nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\n\n\nCAMERA GEAR \nFull Gear List: https://kit.co/DylanMagaster", "Veteran Built The Toughest Camper Ever!", "bb4e9d3f-9f1e-44ba-b398-ca276a75a12c", 10, [], 836, false, "CtxMzS6uBjU", "https://www.youtube.com/watch?v=CtxMzS6uBjU", 13, "/downloads/Vanlife/2023-09-11 Veteran Built The Toughest Camper Ever!/Veteran Built The Toughest Camper Ever! [CtxMzS6uBjU].mp4", false, false, false, 1, ~U[2023-09-11 05:08:09Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "ConnecTen Internet: Use Discount code FLORB for 25$ off your first order\nhttps://connecteninternet.com/discount/FLORB\n\nSubscribe to our new channel: https://www.youtube.com/dylanmagaster2\nBECOME PART OF THE TEAM: https://www.patreon.com/FLORB\n\nFollow Wolfrigs:\nhttps://www.instagram.com/wolfrigsusa/?hl=en\nhttps://www.wolfrigs.com/\n\nFollow me on Social Media\nhttps://www.instagram.com/dylanmagaster\n\n\n\nBusiness inquires or music submissions:\nflorb@floatingorb.earth\n\n\n\nMusic: \nEpidemic Sound Affiliate link: \nhttps://share.epidemicsound.com/MVDGq\nLet's Have a Good Time - John Runefelt\nFamily Badass - Rockin' For Decades\nThe Aviator - Duke Herrington\nMagic Highway - Carvings\nI'm Not a Flower - par\nNeon Flame - Will Harrison\nEidewalk Shimmy - Guustavv\nWhere's the Party At - John Runefelt\n\nFilmed and edited by \nDylan Magaster\nhttps://www.instagram.com/dylanmagaster\n\n\n\n\n\nCAMERA GEAR \nFull Gear List: https://kit.co/DylanMagaster", "Veteran Built The Toughest Camper Ever!", 10, 836, false, "CtxMzS6uBjU", "https://www.youtube.com/watch?v=CtxMzS6uBjU", "/downloads/Vanlife/2023-09-11 Veteran Built The Toughest Camper Ever!/Veteran Built The Toughest Camper Ever! [CtxMzS6uBjU].mp4", false, ~U[2023-09-11 05:08:09Z]] 11:05:33.892 [debug] QUERY OK source="sources" db=0.2ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:33.893 [debug] QUERY OK source="media_items" db=0.3ms 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[2018-02-21 23:04:54Z], 10] 11:05:33.894 [debug] QUERY OK source="media_items" db=1.2ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Basil Lynch is the owner of this 4x4 F250 that has been converted into an epic camper. Basil plans to full-time in his truck in the near future.\nVisit http://dollarshaveclub.com/Dylan to try Dollar Shave Club today! \nBECOME PART OF THE TEAM: https://www.patreon.com/dylanmagaster\n\nThe most helpful book I've ever bought: https://goo.gl/8YEUSL\n\nThis video was sponsored by Dollar Shave Club\n\nFollow Basil Lynch:\nhttps://www.instagram.com/basillynch/\nhttps://www.basillynch.com/\n\nFollow me on Social Media\nhttps://www.twitter.com/dylanmagaster\nhttps://www.instagram.com/dylanmagaster\n\nBusiness inquires or music submissions:\nbusiness@dylanmagaster.com\n\nMusic: \nEpidemic Sound: https://goo.gl/v2TzDb\nDancing On The Tables (Instrumental Version) - Elias Näslin\nMade By Man 1 - Anders Bothén\nWhen Your Heart Breaks (Instrumental Version) - Mondays\n\nSource Footage:\nBasil Lynch\nhttps://www.basillynch.com/\nhttps://www.instagram.com/basillynch/\n\n\nCAMERA GEAR \nFull Gear List: https://kit.com/DylanMagaster\n\n\n\nThis ad was shot with the help of \nRael Cohen \nReyna Lorenzo \n\nSpecial thanks to the Patrons: \nPaddy McCann, Iain Price, Abel Zyl, Jens Lennartsson, Amor Gebreel, interlooper42, Reinoud Vaandrager, Alisa DeGeorge, Brian Schneider, Cōsta Boutsikaris, Jude Waguespack, Larry Coonrod, Peter Vollers, Aaron Lane-Davies, Paulo Senra, Jhan Bent, Michael Taddeo, Two Cowboys, Nicholas John Celestin, Curtis Thornburg, Nico Vergara, Yuzuru Sato, Amit Shetty, Jessica Nigri, Ben Sullins, Constance Turner, isaac, Reg Prahalad, Matt Christie, Paul Howson, Philipp Stangenberg, Matt Christie, GlobalAlight, TJ Prince, Kombi Life, Steven Larcher, Vilhelm Borg Pedersen, Anders L. Jakobsen, Stefan Kamph, Bert Aerts, Mathew Mcpaul, Anna French, Luke Lewis, Eric A Phillips, Janet Frazier, Maria Cristina Henning, Noah Lone, Craig Mackay, Joyce Smith, Sandra Orwig, Marc Duncan, Brittany Simon, Tyran Fuller, Larry Lazaro, Dara Dziedzic, Pablo Cimadevila, Alice Le, Abi, and Lou Kruse", "Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel", "9be6ed7a-3fec-4c9a-87cc-a116e4f10401", 10, [], 683, false, "493PUYz09l0", "https://www.youtube.com/watch?v=493PUYz09l0", 14, "/downloads/Vanlife/2018-02-21 Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel/Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel [493PUYz09l0].mp4", false, false, false, 1, ~U[2018-02-21 23:04:54Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Basil Lynch is the owner of this 4x4 F250 that has been converted into an epic camper. Basil plans to full-time in his truck in the near future.\nVisit http://dollarshaveclub.com/Dylan to try Dollar Shave Club today! \nBECOME PART OF THE TEAM: https://www.patreon.com/dylanmagaster\n\nThe most helpful book I've ever bought: https://goo.gl/8YEUSL\n\nThis video was sponsored by Dollar Shave Club\n\nFollow Basil Lynch:\nhttps://www.instagram.com/basillynch/\nhttps://www.basillynch.com/\n\nFollow me on Social Media\nhttps://www.twitter.com/dylanmagaster\nhttps://www.instagram.com/dylanmagaster\n\nBusiness inquires or music submissions:\nbusiness@dylanmagaster.com\n\nMusic: \nEpidemic Sound: https://goo.gl/v2TzDb\nDancing On The Tables (Instrumental Version) - Elias Näslin\nMade By Man 1 - Anders Bothén\nWhen Your Heart Breaks (Instrumental Version) - Mondays\n\nSource Footage:\nBasil Lynch\nhttps://www.basillynch.com/\nhttps://www.instagram.com/basillynch/\n\n\nCAMERA GEAR \nFull Gear List: https://kit.com/DylanMagaster\n\n\n\nThis ad was shot with the help of \nRael Cohen \nReyna Lorenzo \n\nSpecial thanks to the Patrons: \nPaddy McCann, Iain Price, Abel Zyl, Jens Lennartsson, Amor Gebreel, interlooper42, Reinoud Vaandrager, Alisa DeGeorge, Brian Schneider, Cōsta Boutsikaris, Jude Waguespack, Larry Coonrod, Peter Vollers, Aaron Lane-Davies, Paulo Senra, Jhan Bent, Michael Taddeo, Two Cowboys, Nicholas John Celestin, Curtis Thornburg, Nico Vergara, Yuzuru Sato, Amit Shetty, Jessica Nigri, Ben Sullins, Constance Turner, isaac, Reg Prahalad, Matt Christie, Paul Howson, Philipp Stangenberg, Matt Christie, GlobalAlight, TJ Prince, Kombi Life, Steven Larcher, Vilhelm Borg Pedersen, Anders L. Jakobsen, Stefan Kamph, Bert Aerts, Mathew Mcpaul, Anna French, Luke Lewis, Eric A Phillips, Janet Frazier, Maria Cristina Henning, Noah Lone, Craig Mackay, Joyce Smith, Sandra Orwig, Marc Duncan, Brittany Simon, Tyran Fuller, Larry Lazaro, Dara Dziedzic, Pablo Cimadevila, Alice Le, Abi, and Lou Kruse", "Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel", 10, 683, false, "493PUYz09l0", "https://www.youtube.com/watch?v=493PUYz09l0", "/downloads/Vanlife/2018-02-21 Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel/Photographer's CUSTOM Minimalist EXPEDITION CAMPER 4X4 Diesel [493PUYz09l0].mp4", false, ~U[2018-02-21 23:04:54Z]] 11:05:33.895 [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" = ?) [10] 11:05:33.895 [debug] QUERY OK source="media_items" db=0.3ms 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[2023-04-15 15:00:00Z], 10] 11:05:33.896 [debug] QUERY OK source="media_items" db=0.8ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Thanks to Brilliant for sponsoring this video. Support the channel and get 30 days free at: https://brilliant.org/SuperfastMatt/\nThe first 200 people to sign up will get 20% off Brilliant's annual premium subscription.\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\n\nEquipment I used (affiliate links):\nDiamond lapping discs https://amzn.to/3L0XgQy\nTungsten chartreuse https://amzn.to/41x090S and white https://amzn.to/4057x2E\nPrimeWeld 225X Welder https://amzn.to/3zXzlv8 (This is the smaller one than I bought, but if I were to do it again, I’d buy this one)\nHolder to grind tungsten: https://amzn.to/41qLYKY\nCK20 water cooled torch: https://amzn.to/3L3fam2\nExcellent ESAB welding helmet: https://amzn.to/3UC1hOy\nGood inexpensive welding jacket: https://amzn.to/41rU8mk\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nGet Your SFM Merch: https://superfastmatt.creator-spring.com/listing/all-hail-the-algorithm\nJoin The Discord: https://discord.gg/hwBSkfThtP\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "After 20 Years Of Welding, I Learn How To Weld", "ef287c60-1299-4c34-8896-39535fa218f3", 10, [], 1226, false, "jPFtJLytX-U", "https://www.youtube.com/watch?v=jPFtJLytX-U", 15, "/downloads/Vanlife/2023-04-15 After 20 Years Of Welding, I Learn How To Weld/After 20 Years Of Welding, I Learn How To Weld [jPFtJLytX-U].mkv", false, false, false, 1, ~U[2023-04-15 15:00:00Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Thanks to Brilliant for sponsoring this video. Support the channel and get 30 days free at: https://brilliant.org/SuperfastMatt/\nThe first 200 people to sign up will get 20% off Brilliant's annual premium subscription.\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\n\nEquipment I used (affiliate links):\nDiamond lapping discs https://amzn.to/3L0XgQy\nTungsten chartreuse https://amzn.to/41x090S and white https://amzn.to/4057x2E\nPrimeWeld 225X Welder https://amzn.to/3zXzlv8 (This is the smaller one than I bought, but if I were to do it again, I’d buy this one)\nHolder to grind tungsten: https://amzn.to/41qLYKY\nCK20 water cooled torch: https://amzn.to/3L3fam2\nExcellent ESAB welding helmet: https://amzn.to/3UC1hOy\nGood inexpensive welding jacket: https://amzn.to/41rU8mk\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nGet Your SFM Merch: https://superfastmatt.creator-spring.com/listing/all-hail-the-algorithm\nJoin The Discord: https://discord.gg/hwBSkfThtP\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "After 20 Years Of Welding, I Learn How To Weld", 10, 1226, false, "jPFtJLytX-U", "https://www.youtube.com/watch?v=jPFtJLytX-U", "/downloads/Vanlife/2023-04-15 After 20 Years Of Welding, I Learn How To Weld/After 20 Years Of Welding, I Learn How To Weld [jPFtJLytX-U].mkv", false, ~U[2023-04-15 15:00:00Z]] 11:05:33.897 [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" = ?) [10] 11:05:33.897 [debug] QUERY OK source="media_items" db=0.3ms 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[2021-04-28 14:00:16Z], 10] 11:05:33.898 [debug] QUERY OK source="media_items" db=0.6ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Watch until the end to find out what our next project is going to be! (HINT: it's HUGE).\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \n\nFolding Trash Can: https://amzn.to/2QysDc7\nDog Food Bin: https://amzn.to/3b70zDN\nMini Instant Pot: https://amzn.to/3u8h2Pw\nAutomatic Dish Soap Dispenser: https://amzn.to/2Si3gfb\nShower Soap Dispenser: https://amzn.to/3e5pucK\n\nhttps://www.trailtestedmfg.com/shop\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\nRenogy 10% Discount Code: ambitionstrikes\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en", "Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!)", "4c608e6d-2ace-4bb9-8e21-0ebaa260fc60", 10, [], 1028, false, "rO6vQnjdkEI", "https://www.youtube.com/watch?v=rO6vQnjdkEI", 16, "/downloads/Vanlife/2021-04-28 Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!)/Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!) [rO6vQnjdkEI].mp4", false, false, false, 1, ~U[2021-04-28 14:00:16Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Watch until the end to find out what our next project is going to be! (HINT: it's HUGE).\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \n\nFolding Trash Can: https://amzn.to/2QysDc7\nDog Food Bin: https://amzn.to/3b70zDN\nMini Instant Pot: https://amzn.to/3u8h2Pw\nAutomatic Dish Soap Dispenser: https://amzn.to/2Si3gfb\nShower Soap Dispenser: https://amzn.to/3e5pucK\n\nhttps://www.trailtestedmfg.com/shop\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\nRenogy 10% Discount Code: ambitionstrikes\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en", "Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!)", 10, 1028, false, "rO6vQnjdkEI", "https://www.youtube.com/watch?v=rO6vQnjdkEI", "/downloads/Vanlife/2021-04-28 Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!)/Couple Builds RV - COMPLETE TOUR (+ New Project Announcement!) [rO6vQnjdkEI].mp4", false, ~U[2021-04-28 14:00:16Z]] 11:05:33.898 [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" = ?) [10] 11:05:33.899 [debug] QUERY OK source="media_items" db=0.3ms 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[2024-03-27 13:07:21Z], 10] 11:05:33.900 [debug] QUERY OK source="media_items" db=0.8ms idle=2.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Watch as we turn a Rare Humvee into a cozy camper in under 30 minutes. We've put over 1000 hours into this project, and now you can see the whole process sped up.\n\nFrom planning to building, you'll see every step in fast motion. We've found creative solutions to make this camper comfortable and practical for all off-road adventures.\n\nWhether you're into DIY projects, camping, or just curious, there's something for you here. So sit back, relax, and enjoy the show. Don't forget to like and subscribe.\n\n🎥 Full Humvee Tour Video: https://youtu.be/xlxCad5TeLY\n\n✅ Other Videos You Might Be Interested In Watching: \n\n👉 Humvee Camper Conversion: Installing Diesel Heater & Lightbars | Roaming Venture\nhttps://www.youtube.com/watch?v=J7P51eOalkY\n\n👉 Humvee Conversion: Makeover with Raptor Liner | Roaming Venture\nhttps://www.youtube.com/watch?v=cyQjv0cbols\n\n👉 Transforming My Humvee into a Dream Camper | Roaming Venture\nhttps://www.youtube.com/watch?v=2B1hu0rfD7o\n\n👉 Installing Water System In My Humvee Camper - Humvee Conversion | Roaming Venture\nhttps://www.youtube.com/watch?v=MoV7mR9CNgM \n\n#humvee #campervan #timelapsevideo", "DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested!", "9e754830-76ac-4394-b8e2-839ab29c45c6", 10, [], 1498, false, "Z0Mqxe5kIH0", "https://www.youtube.com/watch?v=Z0Mqxe5kIH0", 17, "/downloads/Vanlife/2024-03-27 DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested!/DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested! [Z0Mqxe5kIH0].mkv", false, false, false, 1, ~U[2024-03-27 13:07:21Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Watch as we turn a Rare Humvee into a cozy camper in under 30 minutes. We've put over 1000 hours into this project, and now you can see the whole process sped up.\n\nFrom planning to building, you'll see every step in fast motion. We've found creative solutions to make this camper comfortable and practical for all off-road adventures.\n\nWhether you're into DIY projects, camping, or just curious, there's something for you here. So sit back, relax, and enjoy the show. Don't forget to like and subscribe.\n\n🎥 Full Humvee Tour Video: https://youtu.be/xlxCad5TeLY\n\n✅ Other Videos You Might Be Interested In Watching: \n\n👉 Humvee Camper Conversion: Installing Diesel Heater & Lightbars | Roaming Venture\nhttps://www.youtube.com/watch?v=J7P51eOalkY\n\n👉 Humvee Conversion: Makeover with Raptor Liner | Roaming Venture\nhttps://www.youtube.com/watch?v=cyQjv0cbols\n\n👉 Transforming My Humvee into a Dream Camper | Roaming Venture\nhttps://www.youtube.com/watch?v=2B1hu0rfD7o\n\n👉 Installing Water System In My Humvee Camper - Humvee Conversion | Roaming Venture\nhttps://www.youtube.com/watch?v=MoV7mR9CNgM \n\n#humvee #campervan #timelapsevideo", "DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested!", 10, 1498, false, "Z0Mqxe5kIH0", "https://www.youtube.com/watch?v=Z0Mqxe5kIH0", "/downloads/Vanlife/2024-03-27 DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested!/DIY Humvee Camper Build Timelapse - Over 1000 Hours Invested! [Z0Mqxe5kIH0].mkv", false, ~U[2024-03-27 13:07:21Z]] 11:05:33.901 [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" = ?) [10] 11:05:33.901 [debug] QUERY OK source="media_items" db=0.3ms idle=2.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 07:00:18Z], 10] 11:05:33.902 [debug] QUERY OK source="media_items" db=0.3ms idle=2.7ms INSERT INTO "media_items" AS m0 ("title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Insane Truck Build: F550 Earth Roamer", "0877c5f8-80d4-4e85-b19c-27175341e294", 10, [], 29, false, "VTLrLAjCZHc", "https://www.youtube.com/watch?v=VTLrLAjCZHc", 18, "/downloads/Vanlife/2024-06-20 Insane Truck Build: F550 Earth Roamer/Insane Truck Build: F550 Earth Roamer [VTLrLAjCZHc].mp4", false, false, true, 1, ~U[2024-06-20 07:00:18Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "", "Insane Truck Build: F550 Earth Roamer", 10, 29, false, "VTLrLAjCZHc", "https://www.youtube.com/watch?v=VTLrLAjCZHc", "/downloads/Vanlife/2024-06-20 Insane Truck Build: F550 Earth Roamer/Insane Truck Build: F550 Earth Roamer [VTLrLAjCZHc].mp4", true, ~U[2024-06-20 07:00:18Z]] 11:05:33.902 [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" = ?) [10] 11:05:33.902 [debug] QUERY OK source="media_items" db=0.3ms idle=2.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-27 13:00:02Z], 10] 11:05:33.904 [debug] QUERY OK source="media_items" db=0.7ms idle=2.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We spent 2.5 months building the DIY off-road RV of our dreams! From a pile of aluminum to a turnkey camper, see just how much work went into building this epic adventure machine.\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► WATCH - Complete Camper Build Series: https://bit.ly/3k6qQWv\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nSupport our channel by subscribing and dropping a comment below! We are already cooking up the next big project and can't wait to share it with you all.\n\nInstagram: restless_redhead\nWebsite: www.trailtestedmfg.com\n\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nSong List:\nYou Blow My Mind - Hallman\nWhite Gold - Tommy Ljundberg\nYour Vibe - Yomoti\nUp Higher - Sven Karlsson\nCalling Me - Ooyy", "TIMELAPSE- Couple Builds DIY RV (Start To Finish)", "fe998bd6-f5a2-4cc7-8b5c-7d16693a1f4e", 10, [], 687, false, "7mQygf8-LUU", "https://www.youtube.com/watch?v=7mQygf8-LUU", 19, "/downloads/Vanlife/2021-02-27 TIMELAPSE- Couple Builds DIY RV (Start To Finish)/TIMELAPSE- Couple Builds DIY RV (Start To Finish) [7mQygf8-LUU].mp4", false, false, false, 1, ~U[2021-02-27 13:00:02Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "We spent 2.5 months building the DIY off-road RV of our dreams! From a pile of aluminum to a turnkey camper, see just how much work went into building this epic adventure machine.\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► WATCH - Complete Camper Build Series: https://bit.ly/3k6qQWv\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nSupport our channel by subscribing and dropping a comment below! We are already cooking up the next big project and can't wait to share it with you all.\n\nInstagram: restless_redhead\nWebsite: www.trailtestedmfg.com\n\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nSong List:\nYou Blow My Mind - Hallman\nWhite Gold - Tommy Ljundberg\nYour Vibe - Yomoti\nUp Higher - Sven Karlsson\nCalling Me - Ooyy", "TIMELAPSE- Couple Builds DIY RV (Start To Finish)", 10, 687, false, "7mQygf8-LUU", "https://www.youtube.com/watch?v=7mQygf8-LUU", "/downloads/Vanlife/2021-02-27 TIMELAPSE- Couple Builds DIY RV (Start To Finish)/TIMELAPSE- Couple Builds DIY RV (Start To Finish) [7mQygf8-LUU].mp4", false, ~U[2021-02-27 13:00:02Z]] 11:05:33.904 [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" = ?) [10] 11:05:33.904 [debug] QUERY OK source="media_items" db=0.3ms 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[2021-01-19 13:00:13Z], 10] 11:05:33.906 [debug] QUERY OK source="media_items" db=0.8ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["When rebuilding a car or motorcycle, or wiring a race car, it is often easier to rip out the old wiring and redo all of it. Today I will show you how to plan it out and do it with the correct connectors, wires, and tools. It's easier than it sounds and cheaper than you might think.\n\nThe Labelmaker and heat shrink I use:\nhttps://amzn.to/3j5xfSP\nhttps://amzn.to/35KhJUs\nhttps://amzn.to/2STdh34\nI may get a commission if you use the above links\n\nAll the part numbers and links you need: \nhttps://docs.google.com/spreadsheets/d/1YXXTvyCiPEYuy4OMygnMDq84ny5QzHOqsxAcB5Mt0i0/\n\nVideo on ECU wiring (specifically the Megasquirt): https://youtu.be/6LTwtQDOoRA\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt", "Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively", "7ff7dadd-868c-4222-8bfe-38f9cd092af4", 10, [], 1149, false, "pSXv8RHa22I", "https://www.youtube.com/watch?v=pSXv8RHa22I", 20, "/downloads/Vanlife/2021-01-19 Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively/Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively [pSXv8RHa22I].mkv", false, false, false, 1, ~U[2021-01-19 13:00:13Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "When rebuilding a car or motorcycle, or wiring a race car, it is often easier to rip out the old wiring and redo all of it. Today I will show you how to plan it out and do it with the correct connectors, wires, and tools. It's easier than it sounds and cheaper than you might think.\n\nThe Labelmaker and heat shrink I use:\nhttps://amzn.to/3j5xfSP\nhttps://amzn.to/35KhJUs\nhttps://amzn.to/2STdh34\nI may get a commission if you use the above links\n\nAll the part numbers and links you need: \nhttps://docs.google.com/spreadsheets/d/1YXXTvyCiPEYuy4OMygnMDq84ny5QzHOqsxAcB5Mt0i0/\n\nVideo on ECU wiring (specifically the Megasquirt): https://youtu.be/6LTwtQDOoRA\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt", "Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively", 10, 1149, false, "pSXv8RHa22I", "https://www.youtube.com/watch?v=pSXv8RHa22I", "/downloads/Vanlife/2021-01-19 Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively/Re-Wire Your Whole Damn Car - How To Do It Correctly & Inexpensively [pSXv8RHa22I].mkv", false, ~U[2021-01-19 13:00:13Z]] 11:05:33.906 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:33.906 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-09-02 15:30:01Z], 10] 11:05:33.907 [debug] QUERY OK source="media_items" db=0.5ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Superfast Matt is supported by:\nSendCutSend - For Fast laser cut parts, click here: https://bit.ly/34eGomq\n\nAnd no, I'm not putting Tesla door handles on the Jag.\n\nThis channel has awesome info on Tesla's advanced technology: https://www.youtube.com/watch?v=PnUnBiNfa-A\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "Tesla Is Lightyears Ahead Of... Tesla", "61db4a3d-14b5-4632-bb65-4b5dc6e86014", 10, [], 656, false, "Bea4FS-zDzc", "https://www.youtube.com/watch?v=Bea4FS-zDzc", 21, "/downloads/Vanlife/2021-09-02 Tesla Is Lightyears Ahead Of... Tesla/Tesla Is Lightyears Ahead Of... Tesla [Bea4FS-zDzc].mkv", false, false, false, 1, ~U[2021-09-02 15:30:01Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Superfast Matt is supported by:\nSendCutSend - For Fast laser cut parts, click here: https://bit.ly/34eGomq\n\nAnd no, I'm not putting Tesla door handles on the Jag.\n\nThis channel has awesome info on Tesla's advanced technology: https://www.youtube.com/watch?v=PnUnBiNfa-A\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "Tesla Is Lightyears Ahead Of... Tesla", 10, 656, false, "Bea4FS-zDzc", "https://www.youtube.com/watch?v=Bea4FS-zDzc", "/downloads/Vanlife/2021-09-02 Tesla Is Lightyears Ahead Of... Tesla/Tesla Is Lightyears Ahead Of... Tesla [Bea4FS-zDzc].mkv", false, ~U[2021-09-02 15:30:01Z]] 11:05:33.908 [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" = ?) [10] 11:05:33.908 [debug] QUERY OK source="media_items" db=0.3ms 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[2020-03-10 12:00:10Z], 10] 11:05:33.909 [debug] QUERY OK source="media_items" db=0.6ms idle=2.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I hate sleeping in a tent, but I have a camping trip coming up this weekend and it’s already Thursday. So, I spent an hour and $40 to make the cheapest, easiest car camper conversion. \nYes, it’s basically just an elevated platform, but with some backpacks and the right mattress, it has everything you need. It’s the ultra-light version of #vanlife\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt\nTwitter - https://twitter.com/Superfast\n\n#carcamping", "The Easiest, Cheapest Car Camper Conversion", "ec676926-6868-4c4e-8f2a-8c6c8657e1a4", 10, [], 380, false, "oJfdDV32XX0", "https://www.youtube.com/watch?v=oJfdDV32XX0", 22, "/downloads/Vanlife/2020-03-10 The Easiest, Cheapest Car Camper Conversion/The Easiest, Cheapest Car Camper Conversion [oJfdDV32XX0].mkv", false, false, false, 1, ~U[2020-03-10 12:00:10Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "I hate sleeping in a tent, but I have a camping trip coming up this weekend and it’s already Thursday. So, I spent an hour and $40 to make the cheapest, easiest car camper conversion. \nYes, it’s basically just an elevated platform, but with some backpacks and the right mattress, it has everything you need. It’s the ultra-light version of #vanlife\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nFacebook - https://www.facebook.com/superfastmatt\nTwitter - https://twitter.com/Superfast\n\n#carcamping", "The Easiest, Cheapest Car Camper Conversion", 10, 380, false, "oJfdDV32XX0", "https://www.youtube.com/watch?v=oJfdDV32XX0", "/downloads/Vanlife/2020-03-10 The Easiest, Cheapest Car Camper Conversion/The Easiest, Cheapest Car Camper Conversion [oJfdDV32XX0].mkv", false, ~U[2020-03-10 12:00:10Z]] 11:05:33.909 [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" = ?) [10] 11:05:33.910 [debug] QUERY OK source="media_items" db=0.3ms 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[2023-06-03 14:00:27Z], 10] 11:05:33.912 [debug] QUERY OK source="media_items" db=2.2ms idle=2.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What an amazing vehicle Erik has created out of this F-550, and the best part, this is just the beginning! The next two videos will be full explanations of the interior, and the rooftop deck. Where would you take this insane expedition rig? Whatever the answer, you could buy it and go! \n\nShoot Erik an email to inquire about purchasing this vehicle!\nerikpetroni@outlook.com\n\nIf my videos and content have inspired you or bring joy to your life, consider helping to support my videos on Patreon: https://www.patreon.com/down2mob\n\nProduct Discounts: https://www.down2mob.com/discount-codes\n\nAmazon Store: https://www.amazon.com/shop/down2moboverland\n\nMERCH IS HERE!\nhttps://www.teespring.com/stores/down2mob", "Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio", "a155881c-2b23-44cb-ae86-a318c339f418", 10, [], 573, false, "k_83NPR1k1Q", "https://www.youtube.com/watch?v=k_83NPR1k1Q", 23, "/downloads/Vanlife/2023-06-03 Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio/Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio [k_83NPR1k1Q].mp4", false, false, false, 1, ~U[2023-06-03 14:00:27Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "What an amazing vehicle Erik has created out of this F-550, and the best part, this is just the beginning! The next two videos will be full explanations of the interior, and the rooftop deck. Where would you take this insane expedition rig? Whatever the answer, you could buy it and go! \n\nShoot Erik an email to inquire about purchasing this vehicle!\nerikpetroni@outlook.com\n\nIf my videos and content have inspired you or bring joy to your life, consider helping to support my videos on Patreon: https://www.patreon.com/down2mob\n\nProduct Discounts: https://www.down2mob.com/discount-codes\n\nAmazon Store: https://www.amazon.com/shop/down2moboverland\n\nMERCH IS HERE!\nhttps://www.teespring.com/stores/down2mob", "Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio", 10, 573, false, "k_83NPR1k1Q", "https://www.youtube.com/watch?v=k_83NPR1k1Q", "/downloads/Vanlife/2023-06-03 Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio/Erik built his Own Earth Roamer F550 Custom Camper with 6 Hammocks & Rooftop Patio [k_83NPR1k1Q].mp4", false, ~U[2023-06-03 14:00:27Z]] 11:05:33.913 [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" = ?) [10] 11:05:33.913 [debug] QUERY OK source="media_items" db=0.3ms 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-06-25 14:30:20Z], 10] 11:05:33.915 [debug] QUERY OK source="media_items" db=0.9ms idle=4.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Camping adventure in the heart of Florida! 🚙🌲 In this unique experience, I explore the great outdoors in a fully-equipped military Humvee. From rugged trails to serene campsites, the Humvee provides the perfect blend of comfort off grid.\n\n✅ Stay Connected With Me: \n\n👉 Instagram: https://www.instagram.com/ROAMINGVENTURES/\n👉 TikTok : https://www.tiktok.com/@roamingventures\n \n==============================\n\n✅ Other Videos You Might Be Interested In Watching: \n\n👉 Humvee Tour: https://youtu.be/xlxCad5TeLY\n\n👉 Humvee Timelapse: https://youtu.be/Z0Mqxe5kIH0\n\n👉 Humvee Conversion: Makeover with Raptor Liner | Roaming Venture\nhttps://www.youtube.com/watch?v=cyQjv0cbols\n\n👉 Transforming My Humvee into a Dream Camper | Roaming Venture\nhttps://www.youtube.com/watch?v=2B1hu0rfD7o\n\n=============================\n\n✅ About Roaming Venture: \n\nAt Roaming Ventures, we combine our passion for building Humvee camper conversions with a deep appreciation for the great outdoors. My channel is a haven for DIY enthusiasts and adventurers. From layout and design to electrical systems and interior finishes, we share our knowledge and experiences to help you achieve your dream adventure vehicle.\n\nOur travel vlogs and adventure stories will inspire you to embrace the freedom and serenity of nature, and to create unforgettable memories along the way.\n\nRoaming Ventures - Where craftsmanship meets adventure, and the open road becomes your canvas\n\nFor Collaboration and Business inquiries, please use the contact information below:\n\n📩 Email: info@roaming.ventures\n\n🔔 Subscribe to my channel for more videos: https://www.youtube.com/@roamingventures/?sub_confirmation=1\n\n=====================\n\n#campervans #humvee #humveecamper", "Off-road Camping | DIY Military Humvee", "7bf25fe5-fd49-4455-8187-4e8901aa0f76", 10, [], 837, false, "wrUwvA0wknQ", "https://www.youtube.com/watch?v=wrUwvA0wknQ", 24, "/downloads/Vanlife/2024-06-25 Off-road Camping | DIY Military Humvee/Off-road Camping | DIY Military Humvee [wrUwvA0wknQ].mkv", false, false, false, 1, ~U[2024-06-25 14:30:20Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Camping adventure in the heart of Florida! 🚙🌲 In this unique experience, I explore the great outdoors in a fully-equipped military Humvee. From rugged trails to serene campsites, the Humvee provides the perfect blend of comfort off grid.\n\n✅ Stay Connected With Me: \n\n👉 Instagram: https://www.instagram.com/ROAMINGVENTURES/\n👉 TikTok : https://www.tiktok.com/@roamingventures\n \n==============================\n\n✅ Other Videos You Might Be Interested In Watching: \n\n👉 Humvee Tour: https://youtu.be/xlxCad5TeLY\n\n👉 Humvee Timelapse: https://youtu.be/Z0Mqxe5kIH0\n\n👉 Humvee Conversion: Makeover with Raptor Liner | Roaming Venture\nhttps://www.youtube.com/watch?v=cyQjv0cbols\n\n👉 Transforming My Humvee into a Dream Camper | Roaming Venture\nhttps://www.youtube.com/watch?v=2B1hu0rfD7o\n\n=============================\n\n✅ About Roaming Venture: \n\nAt Roaming Ventures, we combine our passion for building Humvee camper conversions with a deep appreciation for the great outdoors. My channel is a haven for DIY enthusiasts and adventurers. From layout and design to electrical systems and interior finishes, we share our knowledge and experiences to help you achieve your dream adventure vehicle.\n\nOur travel vlogs and adventure stories will inspire you to embrace the freedom and serenity of nature, and to create unforgettable memories along the way.\n\nRoaming Ventures - Where craftsmanship meets adventure, and the open road becomes your canvas\n\nFor Collaboration and Business inquiries, please use the contact information below:\n\n📩 Email: info@roaming.ventures\n\n🔔 Subscribe to my channel for more videos: https://www.youtube.com/@roamingventures/?sub_confirmation=1\n\n=====================\n\n#campervans #humvee #humveecamper", "Off-road Camping | DIY Military Humvee", 10, 837, false, "wrUwvA0wknQ", "https://www.youtube.com/watch?v=wrUwvA0wknQ", "/downloads/Vanlife/2024-06-25 Off-road Camping | DIY Military Humvee/Off-road Camping | DIY Military Humvee [wrUwvA0wknQ].mkv", false, ~U[2024-06-25 14:30:20Z]] 11:05:33.915 [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" = ?) [10] 11:05:33.915 [debug] QUERY OK source="media_items" db=0.3ms idle=2.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-04-12 15:00:11Z], 10] 11:05:33.917 [debug] QUERY OK source="media_items" db=1.3ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This video dives into the details of what it REALLY took to build The MUSEROAMER, our DIY expedition vehicle. From the costs and expenses, to the resources it requires, to the mindset along the way, to how we worked with brands to elevate the entire build.\n\nI was inspired by the EarthRoamer expedition vehicle build and decided I would try to build my own with a $30,000 budget and a 2 month timeframe. I quickly learned both goals were unrealistic, especially when I decided to take the project to the absolute highest level we could.\n\nIntro: :25\nInspiration and History: 1:00\nPulling the Trigger: 1:30\nBase Vehicle: 2:00\nBudget: 2:30\nResources: 3:00\nDesign Evolution: 4:10\nWorking with Brands: 5:15\nWhere We Could Have Saved: \nChange of Mindset: 7:00\nWhat it REALLY Cost: 7:50\nFor Sale: 8:45\nFinal Thoughts: 9:30\nBuild Sheet Preview: 11:50\n \nWe documented the entire build, not only on video, but on paper as well. We took everything we learned and complied all the information onto The MUSEROAMER Project Build Sheet, which is available now. The Build Sheet contains a detailed list of materials, appliances, expenses, and components with links to where we found them. It also contains renderings and drawings to scale with detailed measurements. I've also included what I would do differently next time as well as ideas on how to save you time and money. I have no doubt that this will save people hundreds of hours of searching the web and decision making and money/materials if you decide to build an expedition vehicle of your own!\n\nMUSEROAMER Build: https://www.youtube.com/playlist?list=PLAt9VMg1-bq0z8a4qMZY5WWiOqjfLqS4L\n\nIf you find the content we create at all meaningful, educational, entertaining, inspiring, or valuable please consider joining our team on Patreon! We'll be releasing exclusive content, limited edition swag, and more. https://www.patreon.com/AndrewMuse\n\nThe Build Sheet: https://www.andrewmuseproductions.com/product-page/the-museroamer-project-build-sheet\n\nSpecial thanks to:\nJosh Heiner\nAshley LaMarre\nGraham Anthony\nGeorge Raggets\nTrevor Kingsbury\nMark LeBlanc\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFor more day to day adventures follow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse", "What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE)", "54eeffbb-fb1b-44d6-909a-0f1e9db21700", 10, [], 832, false, "rnkzmGhsLfo", "https://www.youtube.com/watch?v=rnkzmGhsLfo", 25, "/downloads/Vanlife/2020-04-12 What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE)/What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE) [rnkzmGhsLfo].mp4", false, false, false, 1, ~U[2020-04-12 15:00:11Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "This video dives into the details of what it REALLY took to build The MUSEROAMER, our DIY expedition vehicle. From the costs and expenses, to the resources it requires, to the mindset along the way, to how we worked with brands to elevate the entire build.\n\nI was inspired by the EarthRoamer expedition vehicle build and decided I would try to build my own with a $30,000 budget and a 2 month timeframe. I quickly learned both goals were unrealistic, especially when I decided to take the project to the absolute highest level we could.\n\nIntro: :25\nInspiration and History: 1:00\nPulling the Trigger: 1:30\nBase Vehicle: 2:00\nBudget: 2:30\nResources: 3:00\nDesign Evolution: 4:10\nWorking with Brands: 5:15\nWhere We Could Have Saved: \nChange of Mindset: 7:00\nWhat it REALLY Cost: 7:50\nFor Sale: 8:45\nFinal Thoughts: 9:30\nBuild Sheet Preview: 11:50\n \nWe documented the entire build, not only on video, but on paper as well. We took everything we learned and complied all the information onto The MUSEROAMER Project Build Sheet, which is available now. The Build Sheet contains a detailed list of materials, appliances, expenses, and components with links to where we found them. It also contains renderings and drawings to scale with detailed measurements. I've also included what I would do differently next time as well as ideas on how to save you time and money. I have no doubt that this will save people hundreds of hours of searching the web and decision making and money/materials if you decide to build an expedition vehicle of your own!\n\nMUSEROAMER Build: https://www.youtube.com/playlist?list=PLAt9VMg1-bq0z8a4qMZY5WWiOqjfLqS4L\n\nIf you find the content we create at all meaningful, educational, entertaining, inspiring, or valuable please consider joining our team on Patreon! We'll be releasing exclusive content, limited edition swag, and more. https://www.patreon.com/AndrewMuse\n\nThe Build Sheet: https://www.andrewmuseproductions.com/product-page/the-museroamer-project-build-sheet\n\nSpecial thanks to:\nJosh Heiner\nAshley LaMarre\nGraham Anthony\nGeorge Raggets\nTrevor Kingsbury\nMark LeBlanc\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFor more day to day adventures follow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse", "What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE)", 10, 832, false, "rnkzmGhsLfo", "https://www.youtube.com/watch?v=rnkzmGhsLfo", "/downloads/Vanlife/2020-04-12 What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE)/What It REALLY Took To Build The MUSEROAMER (DIY EXPEDITION VEHICLE) [rnkzmGhsLfo].mp4", false, ~U[2020-04-12 15:00:11Z]] 11:05:33.918 [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" = ?) [10] 11:05:33.918 [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-04-17 15:48:46Z], 10] 11:05:33.920 [debug] QUERY OK source="media_items" db=1.0ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Come along for a full EarthRoamer LTX Tour—one of the best expedition vehicles 2025 has to offer. Whether you're dreaming of life off the grid, planning your next overland adventure, or just love rugged luxury, this tour is for you.\n\nIn this video, we take you through the exterior and interior of the EarthRoamer LTX:\n🌍 Built on a powerful Ford F-550 4x4 chassis for ultimate off-road capability\n🔋 Equipped with massive solar power and lithium battery systems for true off-grid living\n🚿 Outdoor shower, oversized tires, and roof-mounted gear storage for all your backcountry needs\n🛋️ Inside, enjoy a high-end interior with premium finishes, a full kitchen, wet bath, and smart storage solutions\n🛏️ Comfortable sleeping space, dinette area, and climate control make this a luxury apartment on wheels\nThis is not your average RV—this is a home built for the wild. From desert boondocking to alpine trails, see why the EarthRoamer LTX continues to top the list of the best expedition vehicles 2025.\n\n💬 Drop your favorite feature in the comments! Would you live full-time in an EarthRoamer?\n✅ Like & Subscribe for more overland builds, vehicle tours, and life on the road content.\n\n#earthroamer #EarthRoamerLTX #BestExpeditionVehicles2025 \n▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\n\n🚐 Living full-time in EarthRoamer LTS #192, exploring off-grid destinations, and working remotely from the road. Join us as we chase adventure, share overland travel tips, and embrace unfiltered life on the move.\n\n🔗 Follow our journey: @WideOpenRoams\n\n#OverlandTravel #FullTimeRV #VanLife #OffGridLiving #TravelVlog #RemoteWork #RoadLife #AdventureTravel #NomadicLiving #VanlifeUpgrade #LuxuryOverland #LTXTour #OverlandRig \n\nVLOG 0002", "Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough", "e81d6be6-dc96-4aba-9c5d-4b257320409c", 10, [], 1334, false, "pMlSYiFs9UY", "https://www.youtube.com/watch?v=pMlSYiFs9UY", 26, "/downloads/Vanlife/2025-04-17 Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough/Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough [pMlSYiFs9UY].mkv", false, false, false, 1, ~U[2025-04-17 15:48:46Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Come along for a full EarthRoamer LTX Tour—one of the best expedition vehicles 2025 has to offer. Whether you're dreaming of life off the grid, planning your next overland adventure, or just love rugged luxury, this tour is for you.\n\nIn this video, we take you through the exterior and interior of the EarthRoamer LTX:\n🌍 Built on a powerful Ford F-550 4x4 chassis for ultimate off-road capability\n🔋 Equipped with massive solar power and lithium battery systems for true off-grid living\n🚿 Outdoor shower, oversized tires, and roof-mounted gear storage for all your backcountry needs\n🛋️ Inside, enjoy a high-end interior with premium finishes, a full kitchen, wet bath, and smart storage solutions\n🛏️ Comfortable sleeping space, dinette area, and climate control make this a luxury apartment on wheels\nThis is not your average RV—this is a home built for the wild. From desert boondocking to alpine trails, see why the EarthRoamer LTX continues to top the list of the best expedition vehicles 2025.\n\n💬 Drop your favorite feature in the comments! Would you live full-time in an EarthRoamer?\n✅ Like & Subscribe for more overland builds, vehicle tours, and life on the road content.\n\n#earthroamer #EarthRoamerLTX #BestExpeditionVehicles2025 \n▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬\n\n🚐 Living full-time in EarthRoamer LTS #192, exploring off-grid destinations, and working remotely from the road. Join us as we chase adventure, share overland travel tips, and embrace unfiltered life on the move.\n\n🔗 Follow our journey: @WideOpenRoams\n\n#OverlandTravel #FullTimeRV #VanLife #OffGridLiving #TravelVlog #RemoteWork #RoadLife #AdventureTravel #NomadicLiving #VanlifeUpgrade #LuxuryOverland #LTXTour #OverlandRig \n\nVLOG 0002", "Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough", 10, 1334, false, "pMlSYiFs9UY", "https://www.youtube.com/watch?v=pMlSYiFs9UY", "/downloads/Vanlife/2025-04-17 Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough/Best Expedition Vehicles 2025 – EarthRoamer LTX Tour 🚐💨 Ultimate Off-Grid Rig Walkthrough [pMlSYiFs9UY].mkv", false, ~U[2025-04-17 15:48:46Z]] 11:05:33.920 [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" = ?) [10] 11:05:33.921 [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[2020-09-18 18:05:08Z], 10] 11:05:33.922 [debug] QUERY OK source="media_items" db=0.9ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Are you considering a skoolie build? Check this out - http://bit.ly/SkoolieSchool\nSubscribe For More Videos : https://www.youtube.com/user/tylerdurdeno9/\nSubscribe For Weekly Sneak Peeks : https://bit.ly/TinyHomeToursNewsletter\nSubscribe For Life On The Road Videos : http://bit.ly/OffGridSkoolieSubscribe\n\nVIDEO DESCRIPTION:\nAndrew and Ashley spent 2 years building this adventure vehicle from the ground up. They worked out of their friends garage and literally built the frame, the box, the interior... Everything. They initially hoped it would take 2 months of 16 hour days... Always give yourself more time than you think it's going to take. They have a beefy solar system with lithium batteries, tons of storage and the ability to travel on absolutely any terrain with the truck they built on top of and the additions they made. There's so much good information in this video about a small, functional layout including a bathroom, how to take care of moisture under beds and solar, so if you love adventure and life on the road, this is the video for you! \nAndrew's IG: https://www.instagram.com/andrew__muse/\nHis YouTube: https://www.youtube.com/channel/UCxrtaro4GiqPIYmIwnlpIsQ\nTheir rigs IG: https://www.instagram.com/tinyhomeadventure/\nAhsley's IG: https://www.instagram.com/theunexpectedadventuress/\nKicker the dog's IG: https://www.instagram.com/kickerdogmuse/\n\n______________________________BONUS CONTENT_____________________________________\nNature's Head Toilet With Bonuses - http://bit.ly/NaturesHeadTHT\nTiny House & Skoolie Build Gear - https://skooliecentral.com/gear/\nTiny Home Tours Facebook - https://www.facebook.com/Tinyhome.tours/\nTiny Home Tours Instagram - https://www.instagram.com/tinyhometours/\nLife On The Road Newsletter - http://eepurl.com/gAyDP5\nWant To See More Skoolie Videos? - https://skooliecentral.com/\nNeed Something On Amazon? Shop With This Link - http://amzn.to/1R7HfqE", "DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget", "f6d1ff42-ab2e-40dc-b6be-880b24b69783", 10, [], 753, false, "OxLU77HB51Q", "https://www.youtube.com/watch?v=OxLU77HB51Q", 27, "/downloads/Vanlife/2020-09-18 DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget/DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget [OxLU77HB51Q].mp4", false, false, false, 1, ~U[2020-09-18 18:05:08Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Are you considering a skoolie build? Check this out - http://bit.ly/SkoolieSchool\nSubscribe For More Videos : https://www.youtube.com/user/tylerdurdeno9/\nSubscribe For Weekly Sneak Peeks : https://bit.ly/TinyHomeToursNewsletter\nSubscribe For Life On The Road Videos : http://bit.ly/OffGridSkoolieSubscribe\n\nVIDEO DESCRIPTION:\nAndrew and Ashley spent 2 years building this adventure vehicle from the ground up. They worked out of their friends garage and literally built the frame, the box, the interior... Everything. They initially hoped it would take 2 months of 16 hour days... Always give yourself more time than you think it's going to take. They have a beefy solar system with lithium batteries, tons of storage and the ability to travel on absolutely any terrain with the truck they built on top of and the additions they made. There's so much good information in this video about a small, functional layout including a bathroom, how to take care of moisture under beds and solar, so if you love adventure and life on the road, this is the video for you! \nAndrew's IG: https://www.instagram.com/andrew__muse/\nHis YouTube: https://www.youtube.com/channel/UCxrtaro4GiqPIYmIwnlpIsQ\nTheir rigs IG: https://www.instagram.com/tinyhomeadventure/\nAhsley's IG: https://www.instagram.com/theunexpectedadventuress/\nKicker the dog's IG: https://www.instagram.com/kickerdogmuse/\n\n______________________________BONUS CONTENT_____________________________________\nNature's Head Toilet With Bonuses - http://bit.ly/NaturesHeadTHT\nTiny House & Skoolie Build Gear - https://skooliecentral.com/gear/\nTiny Home Tours Facebook - https://www.facebook.com/Tinyhome.tours/\nTiny Home Tours Instagram - https://www.instagram.com/tinyhometours/\nLife On The Road Newsletter - http://eepurl.com/gAyDP5\nWant To See More Skoolie Videos? - https://skooliecentral.com/\nNeed Something On Amazon? Shop With This Link - http://amzn.to/1R7HfqE", "DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget", 10, 753, false, "OxLU77HB51Q", "https://www.youtube.com/watch?v=OxLU77HB51Q", "/downloads/Vanlife/2020-09-18 DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget/DIY Overland Vehicle - Earthroamer Inspired Truck Camper On A Budget [OxLU77HB51Q].mp4", false, ~U[2020-09-18 18:05:08Z]] 11:05:33.923 [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" = ?) [10] 11:05:33.923 [debug] QUERY OK source="media_items" db=0.3ms 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[2023-08-15 17:17:49Z], 10] 11:05:33.924 [debug] QUERY OK source="media_items" db=0.6ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Our latest GRID Series Truck camper built on a 2023 Ford F550. This unit has the G2 Floor Plan and is set up to seat 6 and sleep 6 individuals. Full build specs and gallery of photos can be found here:\nhttps://www.wildernessvans.com/2023-f-550-crew-cab-3032-grid/\n\nTo build your dream camper, utilize our Build and Price tool here:\nhttps://build.wildernessvans.com/build/platform?utm_source=YouTube&utm_medium=social+media&utm_campaign=July2025+F550+Grid+series+camper+G2+floor+plan", "Ford F550 GRID Series Truck Camper with G2 Floor Plan", "e24a1f65-7277-4c75-aabe-d58bd386b581", 10, [], 552, false, "6pby0s0GG1g", "https://www.youtube.com/watch?v=6pby0s0GG1g", 28, "/downloads/Vanlife/2023-08-15 Ford F550 GRID Series Truck Camper with G2 Floor Plan/Ford F550 GRID Series Truck Camper with G2 Floor Plan [6pby0s0GG1g].mkv", false, false, false, 1, ~U[2023-08-15 17:17:49Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Our latest GRID Series Truck camper built on a 2023 Ford F550. This unit has the G2 Floor Plan and is set up to seat 6 and sleep 6 individuals. Full build specs and gallery of photos can be found here:\nhttps://www.wildernessvans.com/2023-f-550-crew-cab-3032-grid/\n\nTo build your dream camper, utilize our Build and Price tool here:\nhttps://build.wildernessvans.com/build/platform?utm_source=YouTube&utm_medium=social+media&utm_campaign=July2025+F550+Grid+series+camper+G2+floor+plan", "Ford F550 GRID Series Truck Camper with G2 Floor Plan", 10, 552, false, "6pby0s0GG1g", "https://www.youtube.com/watch?v=6pby0s0GG1g", "/downloads/Vanlife/2023-08-15 Ford F550 GRID Series Truck Camper with G2 Floor Plan/Ford F550 GRID Series Truck Camper with G2 Floor Plan [6pby0s0GG1g].mkv", false, ~U[2023-08-15 17:17:49Z]] 11:05:33.924 [debug] QUERY OK source="sources" db=0.2ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:33.925 [debug] QUERY OK source="media_items" db=0.3ms 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[2020-06-19 22:57:02Z], 10] 11:05:33.926 [debug] QUERY OK source="media_items" db=0.8ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["After surviving a terrible car crash where he lost everything, Andrew spent two years building a DIY budget EarthRoamer (Overlanding truck) as the ultimate home for himself, his girlfriend, and his dog. Now they live on the road, exploring and adventuring in every way possible. \n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nANDREW'S YOUTUBE CHANNEL:\nhttps://www.youtube.com/channel/UCxrtaro4GiqPIYmIwnlpIsQ\n\nFOLLOW THEM ON SOCIAL MEDIA:\nhttps://www.instagram.com/andrew__muse/?hl=en\nhttps://www.instagram.com/kickerdogmuse/\n\n----------MORE MORE MORE!------------\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \r\nhttps://kit.co/TinyHouseGiantJourney\r\n\r\nRECEIVE GIFTS AND EXCLUSIVE VIDEOS: \r\nhttps://www.patreon.com/tinyhousegiantjourney\r\n\r\nGET SOCIAL WITH JENNA:\nWebsite: http://www.tinyhousegiantjourney.com\r\nFacebook: http://www.facebook.com/tinyhousegiantjourney\r\nInstagram: http://www.instagram.com/tinyhousegiantjourney\r\nTwitter: http://www.twitter.com/tinyhousegirl\n\n-------------- CREDITS ---------------\nVIDEOGRAPHER:\nMatt Alexander\nhttps://aerialexcellence.us/\n\nEDITOR:\nMarcia Trader\nhttp://www.marciatrader.com \n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOS &VIDEO PROVIDEDED BY & WITH PERMISSION: ANDREW MUSE / HOME OWNER", "DIY BUDGET EARTHROAMER // Stunning Overlanding Truck Tour", "eae48163-4224-4f0c-b69b-ba37e9bfe193", 10, [], 801, false, "WlYrcFdm8zM", "https://www.youtube.com/watch?v=WlYrcFdm8zM", 29, "/downloads/Vanlife/2020-06-19 DIY BUDGET EARTHROAMER ⧸⧸ Stunning Overlanding Truck Tour/DIY BUDGET EARTHROAMER ⧸⧸ Stunning Overlanding Truck Tour [WlYrcFdm8zM].mp4", false, false, false, 1, ~U[2020-06-19 22:57:02Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "After surviving a terrible car crash where he lost everything, Andrew spent two years building a DIY budget EarthRoamer (Overlanding truck) as the ultimate home for himself, his girlfriend, and his dog. Now they live on the road, exploring and adventuring in every way possible. \n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nANDREW'S YOUTUBE CHANNEL:\nhttps://www.youtube.com/channel/UCxrtaro4GiqPIYmIwnlpIsQ\n\nFOLLOW THEM ON SOCIAL MEDIA:\nhttps://www.instagram.com/andrew__muse/?hl=en\nhttps://www.instagram.com/kickerdogmuse/\n\n----------MORE MORE MORE!------------\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \r\nhttps://kit.co/TinyHouseGiantJourney\r\n\r\nRECEIVE GIFTS AND EXCLUSIVE VIDEOS: \r\nhttps://www.patreon.com/tinyhousegiantjourney\r\n\r\nGET SOCIAL WITH JENNA:\nWebsite: http://www.tinyhousegiantjourney.com\r\nFacebook: http://www.facebook.com/tinyhousegiantjourney\r\nInstagram: http://www.instagram.com/tinyhousegiantjourney\r\nTwitter: http://www.twitter.com/tinyhousegirl\n\n-------------- CREDITS ---------------\nVIDEOGRAPHER:\nMatt Alexander\nhttps://aerialexcellence.us/\n\nEDITOR:\nMarcia Trader\nhttp://www.marciatrader.com \n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOS &VIDEO PROVIDEDED BY & WITH PERMISSION: ANDREW MUSE / HOME OWNER", "DIY BUDGET EARTHROAMER // Stunning Overlanding Truck Tour", 10, 801, false, "WlYrcFdm8zM", "https://www.youtube.com/watch?v=WlYrcFdm8zM", "/downloads/Vanlife/2020-06-19 DIY BUDGET EARTHROAMER ⧸⧸ Stunning Overlanding Truck Tour/DIY BUDGET EARTHROAMER ⧸⧸ Stunning Overlanding Truck Tour [WlYrcFdm8zM].mp4", false, ~U[2020-06-19 22:57:02Z]] 11:05:33.926 [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" = ?) [10] 11:05:33.927 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-04-03 14:00:23Z], 10] 11:05:33.928 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["For your chance to win a Sprinter Van while supporting two great causes, go to https://www.omaze.com/ambitionstrikes \n\nWe're a husband and wife team who bought 20 acres of bare off-grid land in Northern Idaho. Follow along as we turn a pole barn into our dream shop with an upstairs apartment!\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► JOIN our mailing list https://mailchi.mp/ambitionstrikes/signup\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \nhttps://www.trailtestedmfg.com/shop\nRenogy 10% Discount Code: ambitionstrikes\nOur Favorite Ratchet Straps: https://amzn.to/3yAklSA\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en\n\nAmazon Wish List: https://www.amazon.com/hz/wishlist/ls/234ZGTHGWKQW9?ref_=wl_share\n\nMailing Address:\n Riley Casey\n 105 Vermeer Dr\n STE 2 PMB 141\n Ponderay, ID 83852\n\n00:00 Don't Judge Us...\n00:43 Courtney said we would never...\n01:24 Do we smell?\n02:38 Eating habits\n03:05 Riley's Snack Stashes!\n04:00 Epic campsites?\n06:19 Hidden messes\n07:11 IT EXPLODED!\n08:35 We don't use these very often", "CAMPER CONFESSIONALS... In Our DIY Earthroamer", "e9011f0e-1b4e-45a7-9d78-8b9ebfadadde", 10, [], 586, false, "zq_08Y0S3XE", "https://www.youtube.com/watch?v=zq_08Y0S3XE", 30, "/downloads/Vanlife/2022-04-03 CAMPER CONFESSIONALS... In Our DIY Earthroamer/CAMPER CONFESSIONALS... In Our DIY Earthroamer [zq_08Y0S3XE].mp4", false, false, false, 1, ~U[2022-04-03 14:00:23Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "For your chance to win a Sprinter Van while supporting two great causes, go to https://www.omaze.com/ambitionstrikes \n\nWe're a husband and wife team who bought 20 acres of bare off-grid land in Northern Idaho. Follow along as we turn a pole barn into our dream shop with an upstairs apartment!\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► JOIN our mailing list https://mailchi.mp/ambitionstrikes/signup\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \nhttps://www.trailtestedmfg.com/shop\nRenogy 10% Discount Code: ambitionstrikes\nOur Favorite Ratchet Straps: https://amzn.to/3yAklSA\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en\n\nAmazon Wish List: https://www.amazon.com/hz/wishlist/ls/234ZGTHGWKQW9?ref_=wl_share\n\nMailing Address:\n Riley Casey\n 105 Vermeer Dr\n STE 2 PMB 141\n Ponderay, ID 83852\n\n00:00 Don't Judge Us...\n00:43 Courtney said we would never...\n01:24 Do we smell?\n02:38 Eating habits\n03:05 Riley's Snack Stashes!\n04:00 Epic campsites?\n06:19 Hidden messes\n07:11 IT EXPLODED!\n08:35 We don't use these very often", "CAMPER CONFESSIONALS... In Our DIY Earthroamer", 10, 586, false, "zq_08Y0S3XE", "https://www.youtube.com/watch?v=zq_08Y0S3XE", "/downloads/Vanlife/2022-04-03 CAMPER CONFESSIONALS... In Our DIY Earthroamer/CAMPER CONFESSIONALS... In Our DIY Earthroamer [zq_08Y0S3XE].mp4", false, ~U[2022-04-03 14:00:23Z]] 11:05:33.929 [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" = ?) [10] 11:05:33.929 [debug] QUERY OK source="media_items" db=0.4ms 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[2021-07-12 00:02:06Z], 10] 11:05:33.930 [debug] QUERY OK source="media_items" db=0.6ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Learn from our mistakes and see what we would change on a future camper build...\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \n\n12V Toilet Fan: https://amzn.to/3i1kaI4\nWindow Scratch Remover: https://amzn.to/2UGc4wg\n\nFolding Trash Can: https://amzn.to/2QysDc7\nDog Food Bin: https://amzn.to/3b70zDN\nMini Instant Pot: https://amzn.to/3u8h2Pw\nAutomatic Dish Soap Dispenser: https://amzn.to/2Si3gfb\nShower Soap Dispenser: https://amzn.to/3e5pucK\n\nhttps://www.trailtestedmfg.com/shop\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\nRenogy 10% Discount Code: ambitionstrikes\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en", "5 Things We HATE About Our DIY Camper", "b3914895-18da-4aa4-b7a6-7ea0ff3e6897", 10, [], 564, false, "BLYMGsNS2Uo", "https://www.youtube.com/watch?v=BLYMGsNS2Uo", 31, "/downloads/Vanlife/2021-07-12 5 Things We HATE About Our DIY Camper/5 Things We HATE About Our DIY Camper [BLYMGsNS2Uo].mp4", false, false, false, 1, ~U[2021-07-12 00:02:06Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Learn from our mistakes and see what we would change on a future camper build...\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \n\n12V Toilet Fan: https://amzn.to/3i1kaI4\nWindow Scratch Remover: https://amzn.to/2UGc4wg\n\nFolding Trash Can: https://amzn.to/2QysDc7\nDog Food Bin: https://amzn.to/3b70zDN\nMini Instant Pot: https://amzn.to/3u8h2Pw\nAutomatic Dish Soap Dispenser: https://amzn.to/2Si3gfb\nShower Soap Dispenser: https://amzn.to/3e5pucK\n\nhttps://www.trailtestedmfg.com/shop\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\nRenogy 10% Discount Code: ambitionstrikes\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en", "5 Things We HATE About Our DIY Camper", 10, 564, false, "BLYMGsNS2Uo", "https://www.youtube.com/watch?v=BLYMGsNS2Uo", "/downloads/Vanlife/2021-07-12 5 Things We HATE About Our DIY Camper/5 Things We HATE About Our DIY Camper [BLYMGsNS2Uo].mp4", false, ~U[2021-07-12 00:02:06Z]] 11:05:33.931 [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" = ?) [10] 11:05:33.931 [debug] QUERY OK source="media_items" db=0.3ms 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[2022-04-10 14:55:22Z], 10] 11:05:33.932 [debug] QUERY OK source="media_items" db=0.9ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The first 1,000 people to use the link or our code ambitionstrikes will get a 1 month free trial of Skillshare: https://skl.sh/ambitionstrikes04221 \n\nFolding Trash Can: https://amzn.to/3EbbSIp\nDoor Catch: https://amzn.to/3JkdHDL\nGoogle Speaker: https://store.google.com/us/config/google_nest_mini?hl=en-US\nInternet Router: https://amzn.to/3KtTkFh\nToilet Fan: https://amzn.to/3Jrz1XZ\nRear View Mirror/Camera: https://bit.ly/3Jrzt8D\n USE CODE AMBITIONSTRIKES FOR $75 OFF YOUR ORDER!\nDog Door Protectors: https://amzn.to/3NYkqXp\nMini Vacuum: https://amzn.to/3uyPKo9\nLeaf Blower: https://amzn.to/3rhcdnp\nSoap Dispenser: https://amzn.to/3xleeD7\nCoffee Maker: https://amzn.to/38FyIvV\nDog Water Bowl: https://amzn.to/3rdla0S\nShoe Tray: https://amzn.to/35WvQtD\n\nNOTE: Any/all of the links above are affiliate links of which Ambition Strikes receives a small commission from sales of certain items, but the price is the same for you.\n\nWe're a husband and wife team who bought 20 acres of bare off-grid land in Northern Idaho. Follow along as we turn a pole barn into our dream shop with an upstairs apartment!\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► JOIN our mailing list https://mailchi.mp/ambitionstrikes/signup\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \nhttps://www.trailtestedmfg.com/shop\nRenogy 10% Discount Code: ambitionstrikes\nOur Favorite Ratchet Straps: https://amzn.to/3yAklSA\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en\n\nAmazon Wish List: https://www.amazon.com/hz/wishlist/ls/234ZGTHGWKQW9?ref_=wl_share\n\nMailing Address:\n Riley Casey\n 105 Vermeer Dr\n STE 2 PMB 141\n Ponderay, ID 83852\n\n0:00 Introduction\n0:17 Folding Trash Can\n0:54 Door Catch\n3:10 Reliable Internet\n4:12 Toilet Smells\n5:25 BREAK TIME\n7:06 Door Protectors\n7:33 Vacuum\n8:11 Soap Holders\n8:44 Coffee Maker\n10:39 Dog Water Bowl\n11:18 Shoe Tray", "Super Simple RV Hacks | Make life on the road easy", "5fdc2d76-2e50-42b8-bf2c-e2228a12775e", 10, [], 717, false, "v21fqdpZvko", "https://www.youtube.com/watch?v=v21fqdpZvko", 32, "/downloads/Vanlife/2022-04-10 Super Simple RV Hacks | Make life on the road easy/Super Simple RV Hacks | Make life on the road easy [v21fqdpZvko].mp4", false, false, false, 1, ~U[2022-04-10 14:55:22Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "The first 1,000 people to use the link or our code ambitionstrikes will get a 1 month free trial of Skillshare: https://skl.sh/ambitionstrikes04221 \n\nFolding Trash Can: https://amzn.to/3EbbSIp\nDoor Catch: https://amzn.to/3JkdHDL\nGoogle Speaker: https://store.google.com/us/config/google_nest_mini?hl=en-US\nInternet Router: https://amzn.to/3KtTkFh\nToilet Fan: https://amzn.to/3Jrz1XZ\nRear View Mirror/Camera: https://bit.ly/3Jrzt8D\n USE CODE AMBITIONSTRIKES FOR $75 OFF YOUR ORDER!\nDog Door Protectors: https://amzn.to/3NYkqXp\nMini Vacuum: https://amzn.to/3uyPKo9\nLeaf Blower: https://amzn.to/3rhcdnp\nSoap Dispenser: https://amzn.to/3xleeD7\nCoffee Maker: https://amzn.to/38FyIvV\nDog Water Bowl: https://amzn.to/3rdla0S\nShoe Tray: https://amzn.to/35WvQtD\n\nNOTE: Any/all of the links above are affiliate links of which Ambition Strikes receives a small commission from sales of certain items, but the price is the same for you.\n\nWe're a husband and wife team who bought 20 acres of bare off-grid land in Northern Idaho. Follow along as we turn a pole barn into our dream shop with an upstairs apartment!\n\n► SUBSCRIBE for videos on Sunday & Wednesday https://bit.ly/2VUaUOJ\n► JOIN our mailing list https://mailchi.mp/ambitionstrikes/signup\n\nSupport Our Channel & Get Exclusive Content: https://www.patreon.com/ambitionstrikes\n\nShop Our Favorites: \nhttps://www.trailtestedmfg.com/shop\nRenogy 10% Discount Code: ambitionstrikes\nOur Favorite Ratchet Straps: https://amzn.to/3yAklSA\nVideo Music: https://www.epidemicsound.com/referral/1gn54b/\n\nInstagram: https://www.instagram.com/restless_redhead/?hl=en\n\nAmazon Wish List: https://www.amazon.com/hz/wishlist/ls/234ZGTHGWKQW9?ref_=wl_share\n\nMailing Address:\n Riley Casey\n 105 Vermeer Dr\n STE 2 PMB 141\n Ponderay, ID 83852\n\n0:00 Introduction\n0:17 Folding Trash Can\n0:54 Door Catch\n3:10 Reliable Internet\n4:12 Toilet Smells\n5:25 BREAK TIME\n7:06 Door Protectors\n7:33 Vacuum\n8:11 Soap Holders\n8:44 Coffee Maker\n10:39 Dog Water Bowl\n11:18 Shoe Tray", "Super Simple RV Hacks | Make life on the road easy", 10, 717, false, "v21fqdpZvko", "https://www.youtube.com/watch?v=v21fqdpZvko", "/downloads/Vanlife/2022-04-10 Super Simple RV Hacks | Make life on the road easy/Super Simple RV Hacks | Make life on the road easy [v21fqdpZvko].mp4", false, ~U[2022-04-10 14:55:22Z]] 11:05:33.933 [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" = ?) [10] 11:05:33.933 [debug] QUERY OK source="media_items" db=0.3ms 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[2022-01-03 14:30:50Z], 10] 11:05:33.975 [debug] QUERY OK source="media_items" db=41.1ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Living The Van Life Merch:\nhttps://www.livingthevanlife.com\n\nTom & Caitlyn Morton of Mortons on the move have built themselves a custom 4x4 RV that is basically an Earthroamer on a budget. Join along as Tom and Cait give us a tour of thier Dodge Ram 5500 with Bigfoot truck camper.\n\nMortons On The Move:\nYouTube: https://www.youtube.com/c/MortonsontheMove/\nWebsite: https://www.mortonsonthemove.com\n\nSupport The LTVL Channel:\n--------------\nPaypal: https://www.paypal.me/livingthevanlife\nPatreon: https://www.patreon.com/LivingTheVanLife\n\nFollow me:\nVan Life Instagram: @LivingTheVanLife\nhttps://www.instagram.com/livingthevanlife/\n\nPersonal Instagram: @chad_derosa\nhttps://www.instagram.com/chad_derosa/\n\nMy Current Film Production - “Rockets and Titans”:\nYouTube: https://www.youtube.com/channel/UCaekVy98pF50VoCwWHwl2ZA\nInstagram: https://www.instagram.com/rocketsandtitans/ \nFacebook: https://www.facebook.com/rocketsandtitans/\n\nThe gear I use while Living The Van Life:\n\nBattle Born Off-Grid Battery System:\n—————————————————\nBattle Born GC2 LiFePo4 Batteries: https://bit.ly/3t24Gaj\nVictron Inverter/Charger: https://bit.ly/3eTNuif\nVictron Distributor: https://bit.ly/3vjPuqu\nVictron Solar Controller: https://bit.ly/3t0YLCm\nSecondary Alternator: https://bit.ly/32XIFPc\nWakespeed Alternator Regulator: https://bit.ly/3xGeUkf\nBattle Born Batteries Affiliate Link: http://battlebornbatteries.com?afmc=Living+The+Van+Life\n\nFlareSpace Flares:\n—————————\nFull Flare/Bed Package: https://bit.ly/3nCAQYH\n\nVan Compass Lift, Suspension, Skid Plates\n————————————————————\nStage 6.3 2” Lift and Shocks: https://bit.ly/3gNdEFW\nRear Diff Skid Plate: https://bit.ly/3nxtHcb\nEngine Skid Plate: https://bit.ly/3vrVa1z\n\nWheels & Tires:\n———————\nTrailbuilt Off-Road: https://bit.ly/3xA2Vof\n315/70r17 BFGoodrich KO2 All Terrain Tires: https://bit.ly/3xx91ph\nARB Air Compressor: https://amzn.to/3u4QOgB\nSpeedflate Inflate/Deflate System (preferred): https://bit.ly/3nwrhdL\nStaun Tire Deflators: https://amzn.to/3aOhCu2\n\nOff-Road Recovery Gear:\n————————————\nWarn Winch: https://amzn.to/3dZ6rkc\nSnatch Block: https://amzn.to/3dZcqFu\n8’ Tree Saver: https://amzn.to/3u1clXu\nMaxTrax Recovery Boards: https://amzn.to/2PvqcGw\n\nOff-Road Lighting:\n—————————\nBaja Designs LP9 Pro LED: https://amzn.to/3gRG5lV\nBaja Designs XL Pro LED: https://amzn.to/3nwxcQ1\nRigid Industries Scene Lights: https://amzn.to/3nwxcQ1\n\nCamp Fire & Cooking Equipment:\n————————————————\nNEW: Matthew Paul Ankou Knife: https://www.mpknives.com\nEsee 5 Surival Knife: https://amzn.to/3fnQSkQ\nSolo Stove Ranger - Portable Fire Pit: https://amzn.to/36JD28f\nLodge Dutch Oven Tripod: https://amzn.to/3gnqgjy\n8\" Dutch Oven: https://amzn.to/3ilGFH7\nCooking Gloves: https://amzn.to/2BXdIjU\nJetboil Cooking System: https://amzn.to/2TH3yrF\nBottle Top Propane Stove: https://amzn.to/2SS82P0\nSolo Stove Titan - Twig Stove: https://amzn.to/3cbYAeZ\nSolo Stove Pot 1800: https://amzn.to/3gxNioK\n\nForestry Tools:\n———————\nTrayvax Trek Field Knife - 10% Coupon Code: VANLIFE - https://bit.ly/2BpqaJh\nEsee 5 Surival Knife: https://amzn.to/3fnQSkQ\nSchrade SCHF9 Camp Knife: https://amzn.to/2Mwr7Ru\n21\" Folding Saw: https://amzn.to/2RQjFmO\nCampcraft Canvas Sheath: https://amzn.to/2T4aJMr\nGransfors Bruk Hand Hatchet: https://amzn.to/2SFqLMg\nHults Bruk Akka Foresters Axe: https://amzn.to/2tQx6LD\nBareBones Living - Japanese Nata Tool: https://bit.ly/2yHBXRL\n\nMy Cold Weather Clothing:\n--------------\nFjallraven Pants: https://amzn.to/3fnwDn4\nFjallraven Jacket: https://amzn.to/2L2BYm7\nFjallraven Hat: https://amzn.to/2SEj6xE\nMarmot Down Coat: https://amzn.to/2Wuol4h\nBase Layer Bottoms: https://amzn.to/3b8XvUL\nBase Layer Top: https://amzn.to/2YC2xGB\nWoolX Socks: https://amzn.to/2W5hf7i\nSorel Winter Boots: https://amzn.to/3fpVirp\n\nOLight Flashlights: 10% off Coupon Code : VanLife\nhttps://olight.idevaffiliate.com/idevaffiliate.php?id=477\n\nWinter Van Equipment:\n——————-\n5KW 12V Diesel Heater: https://amzn.to/2OSFrGC\n\nPersonal Wear:\n———————\nOakley Sunglasses: https://amzn.to/2Y7URcu\nCarhartt Pants: https://amzn.to/2CvdbTM\n\nFishing Gear\n————————-\nRedington" <> ..., "DIY \"EarthRoamer\" On a Budget - 4x4 RV Tour - Living The Van Life", "2c87789d-2c7a-41ab-b1b3-6e1d1240b30b", 10, [], 1620, false, "tF930nPZxxw", "https://www.youtube.com/watch?v=tF930nPZxxw", 33, "/downloads/Vanlife/2022-01-03 DIY "EarthRoamer" On a Budget - 4x4 RV Tour - Living The Van Life/DIY "EarthRoamer" On a Budget - 4x4 RV Tour - Living The Van Life [tF930nPZxxw].mkv", false, false, false, 1, ~U[2022-01-03 14:30:50Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Living The Van Life Merch:\nhttps://www.livingthevanlife.com\n\nTom & Caitlyn Morton of Mortons on the move have built themselves a custom 4x4 RV that is basically an Earthroamer on a budget. Join along as Tom and Cait give us a tour of thier Dodge Ram 5500 with Bigfoot truck camper.\n\nMortons On The Move:\nYouTube: https://www.youtube.com/c/MortonsontheMove/\nWebsite: https://www.mortonsonthemove.com\n\nSupport The LTVL Channel:\n--------------\nPaypal: https://www.paypal.me/livingthevanlife\nPatreon: https://www.patreon.com/LivingTheVanLife\n\nFollow me:\nVan Life Instagram: @LivingTheVanLife\nhttps://www.instagram.com/livingthevanlife/\n\nPersonal Instagram: @chad_derosa\nhttps://www.instagram.com/chad_derosa/\n\nMy Current Film Production - “Rockets and Titans”:\nYouTube: https://www.youtube.com/channel/UCaekVy98pF50VoCwWHwl2ZA\nInstagram: https://www.instagram.com/rocketsandtitans/ \nFacebook: https://www.facebook.com/rocketsandtitans/\n\nThe gear I use while Living The Van Life:\n\nBattle Born Off-Grid Battery System:\n—————————————————\nBattle Born GC2 LiFePo4 Batteries: https://bit.ly/3t24Gaj\nVictron Inverter/Charger: https://bit.ly/3eTNuif\nVictron Distributor: https://bit.ly/3vjPuqu\nVictron Solar Controller: https://bit.ly/3t0YLCm\nSecondary Alternator: https://bit.ly/32XIFPc\nWakespeed Alternator Regulator: https://bit.ly/3xGeUkf\nBattle Born Batteries Affiliate Link: http://battlebornbatteries.com?afmc=Living+The+Van+Life\n\nFlareSpace Flares:\n—————————\nFull Flare/Bed Package: https://bit.ly/3nCAQYH\n\nVan Compass Lift, Suspension, Skid Plates\n————————————————————\nStage 6.3 2” Lift and Shocks: https://bit.ly/3gNdEFW\nRear Diff Skid Plate: https://bit.ly/3nxtHcb\nEngine Skid Plate: https://bit.ly/3vrVa1z\n\nWheels & Tires:\n———————\nTrailbuilt Off-Road: https://bit.ly/3xA2Vof\n315/70r17 BFGoodrich KO2 All Terrain Tires: https://bit.ly/3xx91ph\nARB Air Compressor: https://amzn.to/3u4QOgB\nSpeedflate Inflate/Deflate System (preferred): https://bit.ly/3nwrhdL\nStaun Tire Deflators: https://amzn.to/3aOhCu2\n\nOff-Road Recovery Gear:\n————————————\nWarn Winch: https://amzn.to/3dZ6rkc\nSnatch Block: https://amzn.to/3dZcqFu\n8’ Tree Saver: https://amzn.to/3u1clXu\nMaxTrax Recovery Boards: https://amzn.to/2PvqcGw\n\nOff-Road Li (truncated) 11:05:33.975 [debug] QUERY OK source="sources" db=0.2ms idle=44.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:33.976 [debug] QUERY OK source="media_items" db=0.3ms idle=43.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-09 16:06:28Z], 10] 11:05:33.983 [debug] QUERY OK source="media_items" db=6.6ms idle=43.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Lindsey is not your average gal. For one, she's not afraid of living solo and getting a little greased up when repairing her RV, but also she's found a way to work while living in some of the most remote areas in the USA. And her overlander RV doesn't just act as a 4X4 vehicle to get her around, it also is super functional and cute inside!\n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nFOLLOW LINDSEY:\nhttps://linktr.ee/girlgoneglamping\nhttps://instagram.com/girlgoneglamping\n\n_______________________\n\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \nhttps://kit.co/TinyHouseGiantJourney\n\nRECEIVE GIFTS AND EXCLUSIVE VIDEOS: \nhttps://www.patreon.com/tinyhousegiantjourney\n\n________________________\n\nMORE MORE MORE!\nWebsite: http://www.tinyhousegiantjourney.com\nFacebook: https://www.facebook.com/tinyhousegiantjourney\nInstagram: https://www.instagram.com/tinyhousegiantjourney/\nTik Tok: https://www.tiktok.com/@tinyhousegiantjourney\nTwitter: http://www.twitter.com/tinyhousegirl\nSnapchat: https://story.snapchat.com/p/e08b80cb-ec0c-44a2-9e4f-756f2f9c512c/1866148669855744?sender_web_id=28172bf6-43f5-4675-86c6-c74242ce2297&device_type=desktop&is_copy_url=true\n\nCREDITS\nPRODUCED & HOSTED BY: \nJenna Kausal\n\nVIDEOGRAPHY BY: \nMark Dexter\nhttps://dextercreative.portfolio.site/\n\nEDITOR:\nMarcia Trader\nhttp://www.marciatrader.com \n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOGRAPHY/VIDEOGRAPHY PROVIDED BY OWNERS\n\n________________________\n\n0:00 Intro\n0:55 Meet Lindsey! A solo female traveler for 6 years \n1:18 Introduction to the outdoors\n1:25 Earthroamer inspiration\n1:43 Total cost of the rig\n2:16 Overview of the vehicle\n3:03 About the overlander truck \n3:47 Exterior tour\n5:08 Off-grid solar setup\n5:21 Heating, water, & more!\n6:24 Step inside Lindsey's budget earthroamer\n6:36 Kitchen tour\n7:54 Dining nook w/ space saving & storage solutions\n10:04 Bathroom\n10:47 Fridge & water tanks\n11:22 Battery storage\n11:55 Closet & vanity\n12:11 A cozy bedroom\n12:39 Finding fulfillment through nomadic living\n13:27 Outro", "This Luxury RV is her full-time home! Budget Earthroamer", "67c3262b-321d-4c96-b2be-043ed16244c9", 10, [], 828, false, "lSi0hyWC3AU", "https://www.youtube.com/watch?v=lSi0hyWC3AU", 34, "/downloads/Vanlife/2023-06-09 This Luxury RV is her full-time home! Budget Earthroamer/This Luxury RV is her full-time home! Budget Earthroamer [lSi0hyWC3AU].mp4", false, false, false, 1, ~U[2023-06-09 16:06:28Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Lindsey is not your average gal. For one, she's not afraid of living solo and getting a little greased up when repairing her RV, but also she's found a way to work while living in some of the most remote areas in the USA. And her overlander RV doesn't just act as a 4X4 vehicle to get her around, it also is super functional and cute inside!\n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nFOLLOW LINDSEY:\nhttps://linktr.ee/girlgoneglamping\nhttps://instagram.com/girlgoneglamping\n\n_______________________\n\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \nhttps://kit.co/TinyHouseGiantJourney\n\nRECEIVE GIFTS AND EXCLUSIVE VIDEOS: \nhttps://www.patreon.com/tinyhousegiantjourney\n\n________________________\n\nMORE MORE MORE!\nWebsite: http://www.tinyhousegiantjourney.com\nFacebook: https://www.facebook.com/tinyhousegiantjourney\nInstagram: https://www.instagram.com/tinyhousegiantjourney/\nTik Tok: https://www.tiktok.com/@tinyhousegiantjourney\nTwitter: http://www.twitter.com/tinyhousegirl\nSnapchat: https://story.snapchat.com/p/e08b80cb-ec0c-44a2-9e4f-756f2f9c512c/1866148669855744?sender_web_id=28172bf6-43f5-4675-86c6-c74242ce2297&device_type=desktop&is_copy_url=true\n\nCREDITS\nPRODUCED & HOSTED BY: \nJenna Kausal\n\nVIDEOGRAPHY BY: \nMark Dexter\nhttps://dextercreative.portfolio.site/\n\nEDITOR:\nMarcia Trader\nhttp://www.marciatrader.com \n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOGRAPHY/VIDEOGRAPHY PROVIDED BY OWNERS\n\n________________________\n\n0:00 Intro\n0:55 Meet Lindsey! A solo female traveler for 6 years \n1:18 Introduction to the outdoors\n1:25 Earthroamer inspiration\n1:43 Total cost of the rig\n2:16 Overview of the vehicle\n3:03 About the overlander truck \n3:47 Exterior tour\n5:08 Off-grid solar setup\n5:21 Heating, water, & more!\n6:24 Step inside Lindsey's budget earthroamer\n6:36 Kitchen tour\n7:54 Dining nook w/ space saving & storage solutions\n10:04 Bathroom\n10:47 Fridge & water tanks\n11:22 Battery storage\n11:55 Closet & vanity\n12:11 A cozy bedroom\n12:39 Finding fulfillment through nomadic living\n13:27 Outro", "This Luxury RV is her full-time home! Budget Earthroamer", 10, 828, false, "lSi0hyWC3AU", "https://www.youtube.com/watch?v=lSi0hyWC3AU", "/downloads/Vanlife/2023-06-09 This Luxury RV is her full-time home! Budget Earthroamer/This Luxury RV is her full-time home! Budget Earthroamer [lSi0hyWC3AU].mp4", false, ~U[2023-06-09 16:06:28Z]] 11:05:33.984 [debug] QUERY OK source="sources" db=0.2ms idle=50.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:33.984 [debug] QUERY OK source="media_items" db=0.4ms 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[2020-12-07 18:46:01Z], 10] 11:05:33.986 [debug] QUERY OK source="media_items" db=1.0ms idle=8.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We've been living in The MUSEROAMER, an expedition vehicle we built over the course of two years, for eight months now. The goal was to build an EarthRoamer like vehicle, but for 10% of the cost. In this video we take you through a full tour of our tiny home on wheels, talk about what we would have done differently, and what we plan to do in the future. Let us know what you think!\n\nMUSEROAMER Project Playlist: https://youtu.be/gNQ8YGWE5c4\nTiny Home Adventure Season 3 Playlist: https://youtu.be/6RsBjUlB4zc\n\nIf you want to help keep our wheels literally rolling, please check out our Patreon page. There you can find ways to get exclusive behind the scenes footage, merchandise, one on one calls with us, and more! https://www.patreon.com/AndrewMuse\n\nSpecial Thanks To Our NEXT Level Patrons:\n-Charles Lapage\n-Ruth Voss\n-Anton Sharapov\n-Gretchen Jameson\n-Keenan Ryan\n-The Lykkens\n-Kelsea Perkinson\n-Kris Del Rosario\n-Lisa Mandelin\n-Craig Lester\n-The Abels\n-Justin Irani\n-Aaron Dodell\n\nMake sure to stay up to date with our latest adventures on Instagram:\n@andrew__muse https://www.instagram.com/andrew__muse/\n@kickerdogmuse https://www.instagram.com/kickerdogmuse/\n@theunexpectedadventuress https://www.instagram.com/theunexpectedadventuress/\n@tinyhomeadventure https://www.instagram.com/tinyhomeadventure/\n\nFilmed and Edited By:\nAndrew Muse\nLiam Pickhardt https://www.instagram.com/liampickhardt/\n\nFilmed On:\nDJI Mavic Pro 2 - https://amzn.to/2FXriom\nGH5S - https://amzn.to/2WRwtvv\nDJI Ronin S - https://amzn.to/30u4xhS\nGoPro Hero 9 - https://amzn.to/3k2EzMo\nGoPro Hero 8 - https://amzn.to/2Lbgrre\nManfrotto Tripod - https://amzn.to/2G9OzTh\nGoPro MAX - https://amzn.to/30KsC7b\n\nMobil Satellite Technologies Wi-Fi Solution - https://bit.ly/31BxUSV", "DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project", "530c08ea-7d94-4ec8-aac8-2e8177894530", 10, [], 1077, false, "NhiBmQy6OFE", "https://www.youtube.com/watch?v=NhiBmQy6OFE", 35, "/downloads/Vanlife/2020-12-07 DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project/DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project [NhiBmQy6OFE].mp4", false, false, false, 1, ~U[2020-12-07 18:46:01Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "We've been living in The MUSEROAMER, an expedition vehicle we built over the course of two years, for eight months now. The goal was to build an EarthRoamer like vehicle, but for 10% of the cost. In this video we take you through a full tour of our tiny home on wheels, talk about what we would have done differently, and what we plan to do in the future. Let us know what you think!\n\nMUSEROAMER Project Playlist: https://youtu.be/gNQ8YGWE5c4\nTiny Home Adventure Season 3 Playlist: https://youtu.be/6RsBjUlB4zc\n\nIf you want to help keep our wheels literally rolling, please check out our Patreon page. There you can find ways to get exclusive behind the scenes footage, merchandise, one on one calls with us, and more! https://www.patreon.com/AndrewMuse\n\nSpecial Thanks To Our NEXT Level Patrons:\n-Charles Lapage\n-Ruth Voss\n-Anton Sharapov\n-Gretchen Jameson\n-Keenan Ryan\n-The Lykkens\n-Kelsea Perkinson\n-Kris Del Rosario\n-Lisa Mandelin\n-Craig Lester\n-The Abels\n-Justin Irani\n-Aaron Dodell\n\nMake sure to stay up to date with our latest adventures on Instagram:\n@andrew__muse https://www.instagram.com/andrew__muse/\n@kickerdogmuse https://www.instagram.com/kickerdogmuse/\n@theunexpectedadventuress https://www.instagram.com/theunexpectedadventuress/\n@tinyhomeadventure https://www.instagram.com/tinyhomeadventure/\n\nFilmed and Edited By:\nAndrew Muse\nLiam Pickhardt https://www.instagram.com/liampickhardt/\n\nFilmed On:\nDJI Mavic Pro 2 - https://amzn.to/2FXriom\nGH5S - https://amzn.to/2WRwtvv\nDJI Ronin S - https://amzn.to/30u4xhS\nGoPro Hero 9 - https://amzn.to/3k2EzMo\nGoPro Hero 8 - https://amzn.to/2Lbgrre\nManfrotto Tripod - https://amzn.to/2G9OzTh\nGoPro MAX - https://amzn.to/30KsC7b\n\nMobil Satellite Technologies Wi-Fi Solution - https://bit.ly/31BxUSV", "DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project", 10, 1077, false, "NhiBmQy6OFE", "https://www.youtube.com/watch?v=NhiBmQy6OFE", "/downloads/Vanlife/2020-12-07 DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project/DIY Expedition Vehicle FULL TOUR - Tiny Home Adventure - MUSEROAMER Project [NhiBmQy6OFE].mp4", false, ~U[2020-12-07 18:46:01Z]] 11:05:33.986 [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" = ?) [10] 11:05:33.987 [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[2019-12-02 00:05:45Z], 10] 11:05:33.988 [debug] QUERY OK source="media_items" db=0.7ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how me made it happen!\n\nOn this episode we start to build the outer shell and basic frame. My father who I haven't had a relationship with in over 20 years joins the team, and we fight an uphill battle to get the shell off the ground. \n\nTime Elapsed:\nTruck Purchased 3/18/2018. We waited 4 months on a fiberglass guy to never came through.\nWorked started - 11/12/18 - 11/19/2018 ~8 days\nApproximate Budget: $14,650 of $30,000 (Including Truck $10,000)\n\nI personally think the \"Muse Roamer\" is going to the the pinnacle of the van life movement!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle!", "44c1dffd-094f-40c6-aa02-6eccd81f620a", 10, [], 668, false, "gNQ8YGWE5c4", "https://www.youtube.com/watch?v=gNQ8YGWE5c4", 36, "/downloads/Vanlife/2019-12-02 MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle!/MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle! [gNQ8YGWE5c4].mp4", false, false, false, 1, ~U[2019-12-02 00:05:45Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how me made it happen!\n\nOn this episode we start to build the outer shell and basic frame. My father who I haven't had a relationship with in over 20 years joins the team, and we fight an uphill battle to get the shell off the ground. \n\nTime Elapsed:\nTruck Purchased 3/18/2018. We waited 4 months on a fiberglass guy to never came through.\nWorked started - 11/12/18 - 11/19/2018 ~8 days\nApproximate Budget: $14,650 of $30,000 (Including Truck $10,000)\n\nI personally think the \"Muse Roamer\" is going to the the pinnacle of the van life movement!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle!", 10, 668, false, "gNQ8YGWE5c4", "https://www.youtube.com/watch?v=gNQ8YGWE5c4", "/downloads/Vanlife/2019-12-02 MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle!/MUSEROAMER Project (Part 1) The Ultimate DIY Overlanding Expedition Vehicle! [gNQ8YGWE5c4].mp4", false, ~U[2019-12-02 00:05:45Z]] 11:05:33.988 [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" = ?) [10] 11:05:33.989 [debug] QUERY OK source="media_items" db=0.3ms 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[2019-12-08 20:02:57Z], 10] 11:05:33.990 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest, this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how we made it happen!\n\nOn this episode we finished the basic camper shell, fiberglassed and bondoed all the holes and seams, cut out the windows, doors, and ceiling vents, I go the the hospital after an accident, and the truck goes to Oakley Off-Road to get lifted and the single rear wheel conversion, and we install 41\" Continental tires on the beast!\n\nTime Elapsed 11/19/2018 - 1/9/2019 59 days from start \nApproximate Budget: $25,328 of $30,000 (Including Truck $10,000)\n\nThis series encompasses all things #vanlife, overlanding, camper, off-road, expedition vehicle, lifestyle, adventure and more!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle!", "22e61854-e58b-4136-842a-682f22603064", 10, [], 821, false, "rAaGWtS3Gh8", "https://www.youtube.com/watch?v=rAaGWtS3Gh8", 37, "/downloads/Vanlife/2019-12-08 MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle!/MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle! [rAaGWtS3Gh8].mp4", false, false, false, 1, ~U[2019-12-08 20:02:57Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest, this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how we made it happen!\n\nOn this episode we finished the basic camper shell, fiberglassed and bondoed all the holes and seams, cut out the windows, doors, and ceiling vents, I go the the hospital after an accident, and the truck goes to Oakley Off-Road to get lifted and the single rear wheel conversion, and we install 41\" Continental tires on the beast!\n\nTime Elapsed 11/19/2018 - 1/9/2019 59 days from start \nApproximate Budget: $25,328 of $30,000 (Including Truck $10,000)\n\nThis series encompasses all things #vanlife, overlanding, camper, off-road, expedition vehicle, lifestyle, adventure and more!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle!", 10, 821, false, "rAaGWtS3Gh8", "https://www.youtube.com/watch?v=rAaGWtS3Gh8", "/downloads/Vanlife/2019-12-08 MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle!/MUSEROAMER PROJECT (Part 2) The Ultimate DIY Overlanding Expedition Vehicle! [rAaGWtS3Gh8].mp4", false, ~U[2019-12-08 20:02:57Z]] 11:05:33.990 [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" = ?) [10] 11:05:33.991 [debug] QUERY OK source="media_items" db=0.3ms idle=2.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2019-12-16 23:01:38Z], 10] 11:05:33.992 [debug] QUERY OK source="media_items" db=0.8ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest, this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how we made it happen!\n\nOn this episode we finished the box, created Shou Sugi Ban out of pine tongue and groove, we visited Vorsheer who fabricated our water tanks, we installed wood firs for the ceiling for the Shou Sugi Ban, we insulated and wired for lights, we realized me made a big design error, my father came back out to help and we dove into some personal history, we fabricated our mounting knuckles for the truck and camper, we built our back cabinet, and the subfloor goes in! So much in this episode! Looking forward to mounting the camper to the truck in the next episode!\n\nTime Elapsed 1/9/2019 - 2/9/2019 90 day from start\nApproximate Budget: $25,900 of $30,000 (Including Truck $10,000\n\nBuilding this overlander from the ground up has proven to be far more difficult than I expected and taken a lot more time, but that's DIY for you.\n\nWe'll have 66 gallons of fresh water and 22 of grey and a cassette toilet. Check out https://www.vorsheershop.com/ for more info! \n\nThis series encompasses all things #vanlife, overlanding, camper, off-road, expedition vehicle, lifestyle, adventure, DIY and more!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle!", "ef0e86c1-338d-489e-9025-5e3d32ce35f6", 10, [], 1042, false, "huKSfR3eQTE", "https://www.youtube.com/watch?v=huKSfR3eQTE", 38, "/downloads/Vanlife/2019-12-16 The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle!/The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle! [huKSfR3eQTE].mp4", false, false, false, 1, ~U[2019-12-16 23:01:38Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "Over the last decade I've lived in a progression of different vehicles. This time I wanted to build the ultimate overlander for Season Three of the Tiny Home Adventure. We set off to build the expedition vehicle of my dreams from the ground up with a $30,000 budget. We documented every aspect of the build, from the design process to all the hardships along the way. To be honest, this was one of the most challenging projects of my entire life, but the final product exceeded my wildest dreams! I want to share with you how we made it happen!\n\nOn this episode we finished the box, created Shou Sugi Ban out of pine tongue and groove, we visited Vorsheer who fabricated our water tanks, we installed wood firs for the ceiling for the Shou Sugi Ban, we insulated and wired for lights, we realized me made a big design error, my father came back out to help and we dove into some personal history, we fabricated our mounting knuckles for the truck and camper, we built our back cabinet, and the subfloor goes in! So much in this episode! Looking forward to mounting the camper to the truck in the next episode!\n\nTime Elapsed 1/9/2019 - 2/9/2019 90 day from start\nApproximate Budget: $25,900 of $30,000 (Including Truck $10,000\n\nBuilding this overlander from the ground up has proven to be far more difficult than I expected and taken a lot more time, but that's DIY for you.\n\nWe'll have 66 gallons of fresh water and 22 of grey and a cassette toilet. Check out https://www.vorsheershop.com/ for more info! \n\nThis series encompasses all things #vanlife, overlanding, camper, off-road, expedition vehicle, lifestyle, adventure, DIY and more!\n\nBig thanks to:\nAshley LaMarre for being incredibly supportive over the last year\nJosh Heiner\nKevin Dupree\nMark LeBlanc\nJorge Ragets\nand everyone else who donated their time and energy! \n\nSupporting brands:\nGoPro\nKicker Audio\nMyMedic\nDometic\nVorsheer\nOakley Off-Road\nStroker Diesel\nBaja Designs\nLion Energy\nAM Solar\nCampChef\nRed Point Woodworks\nReparadise\nWarn\nRossignol\nMaverik\n\nFollow us at:\n@Andrew__Muse\n@TheUnexpectedAdventuress\n@TinyHomeAdventure\n@KickerDogMuse\n\nPlease subscribe and thanks for watching!!!", "The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle!", 10, 1042, false, "huKSfR3eQTE", "https://www.youtube.com/watch?v=huKSfR3eQTE", "/downloads/Vanlife/2019-12-16 The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle!/The MUSEROAMER Project (Part 3) The Ultimate DIY Overlanding Expedition Vehicle! [huKSfR3eQTE].mp4", false, ~U[2019-12-16 23:01:38Z]] 11:05:33.992 [debug] QUERY OK source="sources" db=0.1ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:33.993 [debug] QUERY OK source="media_items" db=0.3ms idle=2.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-15 14:00:19Z], 10] 11:05:33.995 [debug] QUERY OK source="media_items" db=1.3ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT Cody & Christina 🚐 \nFollow them on Instagram: https://www.instagram.com/thedesertcruiser/?hl=en\nTheir Website: https://www.thedesertcruisers.com\nSubscribe on YouTube: https://www.youtube.com/@the.desertcruiser\n\nCody and Christina have spent the last 2 years designing and building their dream tiny home on wheels / expedition truck camper. With Earth Roamers or similar Unimog builds costing anywhere from 600k - 1Million dollars, the two of them set out to build a comparable vehicle for a fraction of the cost. \n\nWatch this complete in depth full tour of their newest rig that was completed fall of 2023! \n\nThe truck started out as a plain old Ford F550 4x4 Chassis Truck with Dual Rear Wheels and was converted into an off roading overland machine with huge 42\" Super Single Wheels and Tires! \n\nThis rig has everything from a massive BattleBorn Batteries / Victron Components 24V electrical system, 1,310w Solar Array, Nomadic Cooling Roof Mounted 12V AC, Front Runner Outfitters Roof Rack, Hydronic Heating System, massive Stainless Steel HOT Shower, Custom Cabinets and more! \n\nThanks to our BUILD PARTNERS, some of the links below are affiliate links ***\n\nBattleborn Batteries: https://battlebornbatteries.com/?afmc=a9&utm_campaign=a9&utm_source=leaddyno&utm_medium=affiliate\n\nExplorist.life: https://explorist.life/\n\nFront Runner Outfitters: https://www.frontrunneroutfitters.com/en/us/\n\nTern Overland: https://www.ternoverland.com/desert-cruiser\n\nNomadic Cooling: https://www.nomadiccooling.com/\n\nBullet Liner: https://www.bulletliner.com/\n\nIceco: https://amzn.to/4fBNVv7\n\nHavelock Wool: https://havelockwool.com/\n\nFurrion: https://furrion.com/collections/ovens?srsltid=AfmBOop7eirx9GdoW0Ph5UIJ7xqie_2AgTCc9z0mwDZx7PxHwKKykS2Q\n\nBrondell: https://www.brondell.com/?gad_source=1&gbraid=0AAAAADvLv8i2cus-lgwlrpbLMa6ZpV5Hb&gclid=CjwKCAiAxKy5BhBbEiwAYiW--yuce_r9H-QWKoRkaBiily_7Fi_CApgh_0P1O3hS-u4cGXbJV0d7kxoCb9oQAvD_BwE\n\nAqua Hot: https://www.aquahot.com/?utm_campaign=527_paid+search+_awareness_aquahot_&utm_medium=paid_search&utm_source=google&utm_content=airxcel-googlepaidsearch-aquahot&gad_source=1&gbraid=0AAAAAqQJSLSlzSirP4Vx3-m2tzmctBB-F&gclid=CjwKCAiAxKy5BhBbEiwAYiW--z6J3Eenn7egq_97UdrUev8bZKmJeuu3NH3iJzGzlSuj07lGxrQdcxoCeysQAvD_BwE\n\nClear Source: https://www.clearsourcerv.com/collections/clearsource-rv-water-filter-systems?srsltid=AfmBOoprLnnOLaDgZ3hp3ZbyhRTtbOz5RTMeNL-Ze_baStbSMlrsSGqF\n\nRecPro: https://recpro.com/?utm_source=google&utm_medium=cpc&utm_campaign=LPTMGeneral&utm_content=search&utm_term=recpro&campaignid=1816720315&adgroupid=68671584159&keyword=recpro&gad_source=1&gbraid=0AAAAADkYSqY68I34IPHz1TUGisDhTWMu4&gclid=CjwKCAiAxKy5BhBbEiwAYiW--5wcra8K-x6icfjVGyEeBJNeEQdtqk8bnDTUdgDwt0HcaG-nWRdBiRoCPTEQAvD_BwE\n\nTorklift: https://www.torklift.com/\n\nCuddy: https://compocloset.com/collections/composting-toilets?\ngad_source=1&gbraid=0AAAAADnpk1TPl491yW3X8qxhma-upHOwm&gclid=CjwKCAiAxKy5BhBbEiwAYiW--3wrIJ12NPSb7EaZE4LI8wHbwJVmsXjAfis7DpF5L_GYCivWVvvcShoCPdIQAvD_BwE\n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "DIY Box Truck turned Overland 4x4 Truck CAMPER / FULL TOUR", "a3164ba4-53de-455a-bb1f-fd243f1534b2", 10, [], 1054, false, "LYPuIxnLem0", "https://www.youtube.com/watch?v=LYPuIxnLem0", 39, "/downloads/Vanlife/2024-11-15 DIY Box Truck turned Overland 4x4 Truck CAMPER ⧸ FULL TOUR/DIY Box Truck turned Overland 4x4 Truck CAMPER ⧸ FULL TOUR [LYPuIxnLem0].mp4", false, false, false, 1, ~U[2024-11-15 14:00:19Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT Cody & Christina 🚐 \nFollow them on Instagram: https://www.instagram.com/thedesertcruiser/?hl=en\nTheir Website: https://www.thedesertcruisers.com\nSubscribe on YouTube: https://www.youtube.com/@the.desertcruiser\n\nCody and Christina have spent the last 2 years designing and building their dream tiny home on wheels / expedition truck camper. With Earth Roamers or similar Unimog builds costing anywhere from 600k - 1Million dollars, the two of them set out to build a comparable vehicle for a fraction of the cost. \n\nWatch this complete in depth full tour of their newest rig that was completed fall of 2023! \n\nThe truck started out as a plain old Ford F550 4x4 Chassis Truck with Dual Rear Wheels and was converted into an off roading overland machine with huge 42\" Super Single Wheels and Tires! \n\nThis rig has everything from a massive BattleBorn Batteries / Victron Components 24V electrical system, 1,310w Solar Array, Nomadic Cooling Roof Mounted 12V AC, Front Runner Outfitters Roof Rack, Hydronic Heating System, massive Stainless Steel HOT Shower, Custom Cabinets and more! \n\nThanks to our BUILD PARTNERS, some of the links below are affiliate links ***\n\nBattleborn Batteries: https://battlebornbatteries.com/?afmc=a9&utm_campaign=a9&utm_source=leaddyno&utm_medium=affiliate\n\nExplorist.life: https://explorist.life/\n\nFront Runner Outfitters: https://www.frontrunneroutfitters.com/en/us/\n\nTern Overland: https://www.ternoverland.com/desert-cruiser\n\nNomadic Cooling: https://www.nomadiccooling.com/\n\nBullet Liner: https://www.bulletliner.com/\n\nIceco: https://amzn.to/4fBNVv7\n\nHavelock Wool: https://havelockwool.com/\n\nFurrion: https://furrion.com/collections/ovens?srsltid=AfmBOop7eirx9GdoW0Ph5UIJ7xqie_2AgTCc9z0mwDZx7PxHwKKykS2Q\n\nBrondell: https://www.brondell.com/?gad_source=1&gbraid=0AAAAADvLv8i2cus-lgwlrpbLMa6ZpV5Hb&gclid=CjwKCAiAxKy5BhBbEiwAYiW--yuce_r9H-QWKoRkaBiily_7Fi_CApgh_0P1O3hS-u4cGXbJV0d7kxoCb9oQAvD_BwE\n\nAqua Hot: https://www.aquahot.com/?utm_campaign=527_paid+search+_awareness_aquahot_&utm_medium=paid_search&utm_source=google&utm_content=airxcel-googlepaidsearch-aquahot&gad_source=1&gbraid=0AAAAAqQJSLSlzSirP4Vx3-m2tzmctBB-F&gclid=CjwKCAiAxKy5BhBbEiwAYiW--z6J3Eenn7egq_97UdrUev8bZKmJeuu3NH3iJzGzlSuj07lGxrQdcxoCeysQAvD_BwE\n\nClear Source: https://www.clearsourcerv.com/collections/clearsource-rv-water-filter-systems?srsltid=AfmBOoprLnnOLaDgZ3hp3ZbyhRTtbOz5RTMeNL-Ze_baStbSMlrsSGqF\n\nRecPro: https://recpro.com/?utm_source=google&utm_medium=cpc&utm_campaign=LPTMGeneral&utm_content=search&utm_term=recpro&campaignid=1816720315&adgroupid=68671584159&keyword=recpro&gad_source=1&gbraid=0AAAAADkYSqY68I34IPHz1TUGisDhTWMu4&gclid=CjwKCAiAxKy5BhBbEiwAYiW--5wcra8K-x6icfjVGyEeBJNeEQdtqk8bnDTUdgDwt0HcaG-nWRdBiRoCPTEQAvD_BwE\n\nTorklift: https://www.torklift.com/\n\nCuddy: https://compocloset.com/collections/composting-toilets?\ngad_source=1&gbraid=0AAAAADnpk1TPl491yW3X8qxhma-upHOwm&gclid=CjwKCAiAxKy5BhBbEiwAYiW--3wrIJ12NPSb7EaZE4LI8wHbwJVmsXjAfis7DpF5L_GYCivWVvvcShoCPdIQAvD_BwE\n\nCheck out my latest film on how to convert a van: https://youtu.be/Z (truncated) 11:05:33.995 [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" = ?) [10] 11:05:33.996 [debug] QUERY OK source="media_items" db=0.3ms 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-09 16:00:09Z], 10] 11:05:33.997 [debug] QUERY OK source="media_items" db=1.2ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I Built My Dream Camper – Full Build Step by Step 🚐✨\n\nAfter months of planning, hard work, and dedication, I finally built my dream camper van! In this full van build timelapse, I take you through the entire step-by-step conversion process—from an empty panel van to a fully functional DIY camper ready for van life adventures.\n\nWhat You’ll See in This Van Build:\n\n✅ Insulation & Soundproofing\n✅ Flooring, Walls & Ceiling Installation\n✅ DIY Kitchen & Storage Build\n✅ Solar Power & Electrical Setup\n✅ Water & Plumbing System\n✅ Bed, Seating & Interior Design\n✅ Final Tour & Full Transformation\n\nIf you’re thinking about building your own off-grid camper van, this video is packed with ideas, tips, tricks, and inspiration to help you on your journey. Whether you’re a weekend adventurer or planning full-time van life, this van conversion has everything you need!\n\n🔔 Subscribe for more van life content and travel adventures!\n👍 Like & Comment if you enjoyed this build! Let me know what your dream camper would look like!\n\n🍿 Subscribe - https://bit.ly/3hBKJSj\n📸 INSTAGRAM - \u00A0https://www.instagram.com/jakeadv\n🌍 WEBSITE - https://jakeadv.com\n\nProducts Mentioned \n\nCheck out Fogstar Drift Batteries - https://www.fogstar-drift.co.uk/?ref=awnpuowi\nInsulation - www.dodomat.com Use code JAKEADV10 for 10% discount\n\nTools Every Van Builder Should Have\n\nCordless Circular Saw - https://amzn.to/3Ctucjv\nDrill - https://amzn.to/3ElkTm4\nJig Saw - https://amzn.to/3CzBYbz\nKreg Circular Saw Track - https://amzn.to/432pW5t\nKreg Concealed Hinge Jig - https://amzn.to/4jKyvrc\nTrend Pocket Hole - https://amzn.to/3WNGt9a\nHeavy Duty Drawer Runners for Bed - https://amzn.to/3DXagGg\n\nWHO AM I? \n\nIf we haven't met before... Hi, I'm Jake 👋 and I went backpacking in 2016 to Indonesia before spending a year in New Zealand and Australia. Afterwards I spent a couple of years teaching English online while travelling full time all over South East Asia. After that it was all about Europe and Turkey in a camper van with my previous partner, but we have since gone our separate ways and I am now back doing my favourite thing - Solo Travel. Join me on my journey as I continue to find new adventures and experiences to make the most out of this little thing we call life. \n\nP.S. Some of the links in this description are affiliate links that I get a kickback from.\n\nIf you’ve read this far into the description then you are a very focussed person and should comment something!\n\nTimestamps:\n00:00 - Prepping The Van\n00:28 - Sound Proofing\n01:16 - Floor Insulation02:00 - General Insulation 04:59 - Cutting the Windows\n07:38 - Installing Roof Fan/Vent\n09:11 - Solar Panels \n09:55 - Finishing the Insulation and Wall Battening\n10:35 - Walls\n14:31 - Flooring\n15:17 - Building the Units, Kitchen and Upper Cabinets\n18:56 - Sofa/Bed Design\n20:53 - Water Tank\n21:47 - Finishing Units, Doors and Drawers\n24:16 - Ceiling Slats \n25:04 - Finishing Touches \n26:18 - Diesel Heater\n26:35 - Kitchen Counter and Plumbing\n27:25 - Swivel Seat\n28:03 - Toilet \n28:31 - End\n\n\n#VanBuild #DIYCamper #VanLife #VanConversion #CamperVan #TinyHomeOnWheels 🚐", "I Built My Dream Camper Van | Full Build Step by Step", "a70c59d7-1531-40a6-9282-69ecb56c2b6a", 10, [], 1747, false, "BQedC7SeWaQ", "https://www.youtube.com/watch?v=BQedC7SeWaQ", 40, "/downloads/Vanlife/2025-02-09 I Built My Dream Camper Van | Full Build Step by Step/I Built My Dream Camper Van | Full Build Step by Step [BQedC7SeWaQ].mkv", false, false, false, 1, ~U[2025-02-09 16:00:09Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "I Built My Dream Camper – Full Build Step by Step 🚐✨\n\nAfter months of planning, hard work, and dedication, I finally built my dream camper van! In this full van build timelapse, I take you through the entire step-by-step conversion process—from an empty panel van to a fully functional DIY camper ready for van life adventures.\n\nWhat You’ll See in This Van Build:\n\n✅ Insulation & Soundproofing\n✅ Flooring, Walls & Ceiling Installation\n✅ DIY Kitchen & Storage Build\n✅ Solar Power & Electrical Setup\n✅ Water & Plumbing System\n✅ Bed, Seating & Interior Design\n✅ Final Tour & Full Transformation\n\nIf you’re thinking about building your own off-grid camper van, this video is packed with ideas, tips, tricks, and inspiration to help you on your journey. Whether you’re a weekend adventurer or planning full-time van life, this van conversion has everything you need!\n\n🔔 Subscribe for more van life content and travel adventures!\n👍 Like & Comment if you enjoyed this build! Let me know what your dream camper would look like!\n\n🍿 Subscribe - https://bit.ly/3hBKJSj\n📸 INSTAGRAM - \u00A0https://www.instagram.com/jakeadv\n🌍 WEBSITE - https://jakeadv.com\n\nProducts Mentioned \n\nCheck out Fogstar Drift Batteries - https://www.fogstar-drift.co.uk/?ref=awnpuowi\nInsulation - www.dodomat.com Use code JAKEADV10 for 10% discount\n\nTools Every Van Builder Should Have\n\nCordless Circular Saw - https://amzn.to/3Ctucjv\nDrill - https://amzn.to/3ElkTm4\nJig Saw - https://amzn.to/3CzBYbz\nKreg Circular Saw Track - https://amzn.to/432pW5t\nKreg Concealed Hinge Jig - https://amzn.to/4jKyvrc\nTrend Pocket Hole - https://amzn.to/3WNGt9a\nHeavy Duty Drawer Runners for Bed - https://amzn.to/3DXagGg\n\nWHO AM I? \n\nIf we haven't met before... Hi, I'm Jake 👋 and I went backpacking in 2016 to Indonesia before spending a year in New Zealand and Australia. Afterwards I spent a couple of years teaching English online while travelling full time all over South East Asia. After that it was all about Europe and Turkey in a camper van with my previous partner, but we have since gone our separate ways and I am now back doing my favourite thing - Solo Travel. Join me on my journey as I continue to find new adventures and experiences to make the most out of this little thing we call life. \n\nP.S. Some of the links in this description are affiliate links that I get a kickback from.\n\nIf you’ve read this far into the description then you are a very focussed person and should comment something!\n\nTimestamps:\n00:00 - Prepping The Van\n00:28 - Sound Proofing\n01:16 - Floor Insulation02:00 - General Insulation 04:59 - Cutting the Windows\n07:38 - Installing Roof Fan/Vent\n09:11 - Solar Panels \n09:55 - Finishing the Insulation and Wall Battening\n10:35 - Walls\n14:31 - Flooring\n15:17 - Building the Units, Kitchen and Upper Cabinets\n18:56 - Sofa/Bed Design\n20:53 - Water Tank\n21:47 - Finishing Units, Doors and Drawers\n24:16 - Ceiling Slats \n25:04 - Finishing Touches \n26:18 - Diesel Heater\n26:35 - Kitchen Counter and Plumbing\n27:25 - Swivel Seat\n28:03 - Toilet \n28:31 - End\n\n\n#VanBuild #DIYCamper #VanLife #VanConversion #CamperVan #TinyHomeOnWheels 🚐", "I Built My Dream Camper Van | Full Build Step by Step", 10, 1747, false, "BQedC7SeWaQ", "https://www.youtube.com/watch?v=BQedC7SeWaQ", "/downloads/Vanlife/2025-02-09 I Built My Dream Camper Van | Full Build Step by Step/I Built My Dream Camper Van | Full Build Step by Step [BQedC7SeWaQ].mkv", false, ~U[2025-02-09 16:00:09Z]] 11:05:33.998 [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" = ?) [10] 11:05:33.998 [debug] QUERY OK source="media_items" db=0.2ms 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-07-17 20:31:47Z], 10] 11:05:34.000 [debug] QUERY OK source="media_items" db=0.9ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The EarthRoamer LTx is a culmination of over two decades of experience, drawing on insights from constructing over 425 overland vehicles since 1998. These vehicles, tested across the globe’s most challenging environments and in all weather conditions, have proven their durability and reliability through extensive use. This rich history of exploration and adventure informs the LTx’s design, ensuring it meets the highest standards of performance and comfort for off-grid living.\n\nJoin us for a walkthrough of our most advanced expedition vehicle yet.\nFrom the inside out, the LTx is built to conquer the wild in total comfort.\n-\nCheck out the EarthRoamer LTx on our website:\nhttps://earthroamer.com/new-lti/ltx-explore/\n-\nFind us here:\nhttps://www.earthroamer.com\nhttps://www.instagram.com/earthroamer\nhttps://www.facebook.com/EarthRoamer\nhttps://www.tiktok.com/@earthroamerxv\nhttps://x.com/EarthRoamer\n-\nTimestamps:\n00:00 Intro\n01:00 Start of Exterior Tour\n01:32 Front Bumper\n02:30 Wheels, Tires, & Suspension\n03:23 Drop Down Steps\n03:31 Carbon Fiber Shell\n04:27 Camper Entry Door\n05:02 External Power Outlet\n05:11 Diesel Exhaust Fluid\n05:27 Passthrough Storage Garage\n06:42 Rear Storage Box\n07:59 Rear Bumper\n08:16 Off-Grid Capabilities\n09:10 Diesel Tanks\n09:19 Cassette Toilet\n09:41 Roof Rack\n10:04 Starlink\n10:12 Walkable Solar Panels\n10:24 Ford F-550 Cab Interior\n15:08 Start of Interior Tour\n15:22 Rustic Walnut Finishes & EarthRoamer Customization\n16:04 Entry Area\n16:19 Coat Closet\n16:48 24 Volt Electrical System & Digital Control Panel\n18:47 Winterization \n19:15 Diesel Air/Water Heater\n19:50 Kitchen\n23:57 Rear Dinette & Entertainment Setup\n25:53 Wardrobe & Electrical Access\n26:08 Bathroom\n27:18 Bedroom\n28:06 Passthrough to Cab\n28:15 Outro", "EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour", "e24cec1d-e078-402c-907b-1be8465f785c", 10, [], 1711, false, "b98nsd-_1EA", "https://www.youtube.com/watch?v=b98nsd-_1EA", 41, "/downloads/Vanlife/2025-07-17 EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour/EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour [b98nsd-_1EA].mkv", false, false, false, 1, ~U[2025-07-17 20:31:47Z], ~U[2026-07-11 15:05:33Z], ~U[2026-07-11 15:05:33Z], "The EarthRoamer LTx is a culmination of over two decades of experience, drawing on insights from constructing over 425 overland vehicles since 1998. These vehicles, tested across the globe’s most challenging environments and in all weather conditions, have proven their durability and reliability through extensive use. This rich history of exploration and adventure informs the LTx’s design, ensuring it meets the highest standards of performance and comfort for off-grid living.\n\nJoin us for a walkthrough of our most advanced expedition vehicle yet.\nFrom the inside out, the LTx is built to conquer the wild in total comfort.\n-\nCheck out the EarthRoamer LTx on our website:\nhttps://earthroamer.com/new-lti/ltx-explore/\n-\nFind us here:\nhttps://www.earthroamer.com\nhttps://www.instagram.com/earthroamer\nhttps://www.facebook.com/EarthRoamer\nhttps://www.tiktok.com/@earthroamerxv\nhttps://x.com/EarthRoamer\n-\nTimestamps:\n00:00 Intro\n01:00 Start of Exterior Tour\n01:32 Front Bumper\n02:30 Wheels, Tires, & Suspension\n03:23 Drop Down Steps\n03:31 Carbon Fiber Shell\n04:27 Camper Entry Door\n05:02 External Power Outlet\n05:11 Diesel Exhaust Fluid\n05:27 Passthrough Storage Garage\n06:42 Rear Storage Box\n07:59 Rear Bumper\n08:16 Off-Grid Capabilities\n09:10 Diesel Tanks\n09:19 Cassette Toilet\n09:41 Roof Rack\n10:04 Starlink\n10:12 Walkable Solar Panels\n10:24 Ford F-550 Cab Interior\n15:08 Start of Interior Tour\n15:22 Rustic Walnut Finishes & EarthRoamer Customization\n16:04 Entry Area\n16:19 Coat Closet\n16:48 24 Volt Electrical System & Digital Control Panel\n18:47 Winterization \n19:15 Diesel Air/Water Heater\n19:50 Kitchen\n23:57 Rear Dinette & Entertainment Setup\n25:53 Wardrobe & Electrical Access\n26:08 Bathroom\n27:18 Bedroom\n28:06 Passthrough to Cab\n28:15 Outro", "EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour", 10, 1711, false, "b98nsd-_1EA", "https://www.youtube.com/watch?v=b98nsd-_1EA", "/downloads/Vanlife/2025-07-17 EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour/EarthRoamer LTx Walkthrough | Official Full Exterior & Interior Tour [b98nsd-_1EA].mkv", false, ~U[2025-07-17 20:31:47Z]] 11:05:34.000 [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" = ?) [10] 11:05:34.000 [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-03-28 17:30:49Z], 10] 11:05:34.002 [debug] QUERY OK source="media_items" db=1.1ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join this channel to get access to perks:\nhttps://www.youtube.com/channel/UCE7GmAYeBVgqDItdX2ihuHQ/join\n\nTake a tour of Abbe's stunning van conversion, which she built herself. In fact, this is her fourth van dwelling build out. She went all out for this one, incorporating mediterranean design, high end appliances, and an open layout. She even found a way to have a gorgeous wet bath inside the space. \n\nCONNECT WITH ABBE:\nhttps://www.instagram.com/a.bbe/?hl=en\nhttps://www.abbeminor.com/\n\nABBE IS SELLING THIS VAN IF YOU'RE INTERESTED CONTACT HER:\nhttps://www.abbeminor.com/contact\n\nABBE'S VAN BOOK: \nhttps://a.co/d/bcQCoMC\nFlipping Freedom: Your Ultimate Guide to Buy, Build, and Sell Vans\n\nGET YOUR OWN LUNA VAN BUILD:\nhttps://roguevans.com/pages/the-luna-van?utm_source=hoobe&utm_medium=social\n\n_____________________\n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nWANNA BE FEATURED ON THE CHANNEL?\nhttps://forms.gle/p5G8Q2cNHe5WN4Mm6\n\n_______________________\n\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \nhttps://kit.co/TinyHouseGiantJourney\n\n________________________\n\nMORE MORE MORE!\nWebsite: http://www.tinyhousegiantjourney.com\nFacebook: https://www.facebook.com/tinyhousegiantjourney\nInstagram: https://www.instagram.com/tinyhousegiantjourney/\nTik Tok: https://www.tiktok.com/@tinyhousegiantjourney\nTwitter: http://www.twitter.com/tinyhousegirl\nSnapchat: https://story.snapchat.com/p/e08b80cb-ec0c-44a2-9e4f-756f2f9c512c/1866148669855744?sender_web_id=28172bf6-43f5-4675-86c6-c74242ce2297&device_type=desktop&is_copy_url=true\n\nCREDITS\nPRODUCED & HOSTED BY: \nJenna Kausal\n\nVIDEOGRAPHY BY: \nDallen Detamore\nJennifer Gonzalez\n\nEDITOR:\nMarcia Trader\n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOGRAPHY/VIDEOGRAPHY PROVIDED BY OWNERS\n\n________________________\n\n0:00 On this week's episode...\n0:39 Welcome to Abbe's Luna Van\n0:52 Let's take a tour!\n1:00 Dining room/sitting area\n1:51 Separation from the van cab\n2:47 Jaw-dropping shower\n4:56 A full closet in a van?!\n5:17 Kitchen tour\n6:02 Utility controls & AC\n7:06 Design cohesion within the space\n7:51 Kitchen tour continued...\n9:27 Hidden storage\n10:46 Bedroom/sleeping area\n12:22 A unique ceiling design\n13:33 Bedroom tour continued...\n14:22 Exterior van tour\n14:50 Garage space and utilities\n15:45 Inspiration to build out sprinter vans\n16:26 Goals for the Luna Van build\n17:09 Total cost \n17:33 How going tiny has impacted Abbe's life\n18:08 What's next for Abbe?\n18:31 Until next time!\n\n#vanlife #vanconversion #solofemalevanlife", "Her stunning van conversion is the best I’ve ever seen!", "4041b55d-6d7b-461b-9044-30674fc6c171", 10, [], 1132, false, "G2KOnkCtgwQ", "https://www.youtube.com/watch?v=G2KOnkCtgwQ", 42, "/downloads/Vanlife/2025-03-28 Her stunning van conversion is the best I’ve ever seen!/Her stunning van conversion is the best I’ve ever seen! [G2KOnkCtgwQ].mp4", false, false, false, 1, ~U[2025-03-28 17:30:49Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Join this channel to get access to perks:\nhttps://www.youtube.com/channel/UCE7GmAYeBVgqDItdX2ihuHQ/join\n\nTake a tour of Abbe's stunning van conversion, which she built herself. In fact, this is her fourth van dwelling build out. She went all out for this one, incorporating mediterranean design, high end appliances, and an open layout. She even found a way to have a gorgeous wet bath inside the space. \n\nCONNECT WITH ABBE:\nhttps://www.instagram.com/a.bbe/?hl=en\nhttps://www.abbeminor.com/\n\nABBE IS SELLING THIS VAN IF YOU'RE INTERESTED CONTACT HER:\nhttps://www.abbeminor.com/contact\n\nABBE'S VAN BOOK: \nhttps://a.co/d/bcQCoMC\nFlipping Freedom: Your Ultimate Guide to Buy, Build, and Sell Vans\n\nGET YOUR OWN LUNA VAN BUILD:\nhttps://roguevans.com/pages/the-luna-van?utm_source=hoobe&utm_medium=social\n\n_____________________\n\nSUBSCRIBE FOR MORE VIDEOS: \nhttps://www.youtube.com/user/tinyhousegj/noodlemx?sub_confirmation=1\n\nWANNA BE FEATURED ON THE CHANNEL?\nhttps://forms.gle/p5G8Q2cNHe5WN4Mm6\n\n_______________________\n\nTINY HOUSE GEAR LIST & RECOMMENDED PRODUCTS: \nhttps://kit.co/TinyHouseGiantJourney\n\n________________________\n\nMORE MORE MORE!\nWebsite: http://www.tinyhousegiantjourney.com\nFacebook: https://www.facebook.com/tinyhousegiantjourney\nInstagram: https://www.instagram.com/tinyhousegiantjourney/\nTik Tok: https://www.tiktok.com/@tinyhousegiantjourney\nTwitter: http://www.twitter.com/tinyhousegirl\nSnapchat: https://story.snapchat.com/p/e08b80cb-ec0c-44a2-9e4f-756f2f9c512c/1866148669855744?sender_web_id=28172bf6-43f5-4675-86c6-c74242ce2297&device_type=desktop&is_copy_url=true\n\nCREDITS\nPRODUCED & HOSTED BY: \nJenna Kausal\n\nVIDEOGRAPHY BY: \nDallen Detamore\nJennifer Gonzalez\n\nEDITOR:\nMarcia Trader\n\nTITLE MUSIC:\nKate Steinway - \"Tiny Home\" \niTunes:http://flyt.it/THGJtinyhomeitunes?ID=\nSpotify: http://flyt.it/THGJtinyhomespotify?ID=\nYoutube: http://flyt.it/tinyhomeYT?ID=\n\nADDITIONAL MUSIC: https://www.epidemicsound.com/\n\nOPENING MONTAGE DRONE SHOT: Jonathan Benabed\n\nADDITIONAL PHOTOGRAPHY/VIDEOGRAPHY PROVIDED BY OWNERS\n\n________________________\n\n0:00 On this week's episode...\n0:39 Welcome to Abbe's Luna Van\n0:52 Let's take a tour!\n1:00 Dining room/sitting area\n1:51 Separation from the van cab\n2:47 Jaw-dropping shower\n4:56 A full closet in a van?!\n5:17 Kitchen tour\n6:02 Utility controls & AC\n7:06 Design cohesion within the space\n7:51 Kitchen tour continued...\n9:27 Hidden storage\n10:46 Bedroom/sleeping area\n12:22 A unique ceiling design\n13:33 Bedroom tour continued...\n14:22 Exterior van tour\n14:50 Garage space and utilities\n15:45 Inspiration to build out sprinter vans\n16:26 Goals for the Luna Van build\n17:09 Total cost \n17:33 How going tiny has impacted Abbe's life\n18:08 What's next for Abbe?\n18:31 Until next time!\n\n#vanlife #vanconversion #solofemalevanlife", "Her stunning van conversion is the best I’ve ever seen!", 10, 1132, false, "G2KOnkCtgwQ", "https://www.youtube.com/watch?v=G2KOnkCtgwQ", "/downloads/Vanlife/2025-03-28 Her stunning van conversion is the best I’ve ever seen!/Her stunning van conversion is the best I’ve ever seen! [G2KOnkCtgwQ].mp4", false, ~U[2025-03-28 17:30:49Z]] 11:05:34.003 [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" = ?) [10] 11:05:34.003 [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[2025-06-08 07:00:30Z], 10] 11:05:34.005 [debug] QUERY OK source="media_items" db=1.3ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["RATING EVERY PART OF OUR SELF BUILD CAMPER VAN CONVERSION OUT OF 10 || WHAT WOULD WE CHANGE ABOUT OF FIRST VAN CONVERSION BUILD || REVIEWING OUR SELF BUILT VAN CONVERSION, WHAT WOULD WE DO DIFFERENT ||\n\nA camper van conversion can cost anywhere from £1,000 to £20,000—and no matter your budget, that’s a big investment. So in this video, I’m going to rate every part of our self-built VW Crafter camper van out of 10. I built this van from the ground up for my family of four, and we’ve just returned from a six-week Arctic adventure where we tested it in temperatures as low as -15°C. From layout and insulation to heating, electrics, storage, and all the clever little features—we're putting it all to the test. I’ll show you what worked, what didn’t, what I’d change, and what I’d definitely do again. Whether you’re planning your first van or looking to upgrade, I hope this gives you some useful insight. Let’s get into it! \n\nFollow us on Instagram @abucklifeofficial\n\nFirst Access to our NEW Mech! \nhttps://abucklife.myshopify.com/\n\nThank you so much for watching and we can't wait to share more of adventures with you.\nOur van is a VW Crafter Long Wheel Base LWB 4 Motion (4x4/AWD) Van. If you have any questions drop me a comment or dm me! \n\nHere is the full build playlist with a video for each part of the build: https://www.youtube.com/playlist?list=PLIqoHmTCdKe4-7V-pkNPZJ5-Y0W5500S0\n\nQuality Products we Use in our Self Build Camper Van: \n- Our AirFryer Oven https://amzn.to/42TDBtE\n- VANDERMOON MOONBOXES AND MOON ORGANISERS | We love all our VANDERMOON gear, from the moon boxes to the moon organisers our van would not be as functional and light weight without them, \nUse Code 'buck10' for 10% off your order! Check out Vandermoon here https://www.vandermoon.com/eng/en/logowanie?create_account=1&s=buck10\n(you do need to use the link for the discount to work!)\n- AUXBEAM LIGHTING | Use this code 'ABL15' to save 15% off your first order and the link https://www.shareasale.com/u.cfm?d=1262373&m=67515&u=4545378\n- HELINOX | camping furniture is so lightweight, easy to set up and durable. Little man loves his mini chair. Use this link https://tidd.ly/41M7tZF and code 'VN7GQVZ43XDB' for 10% OFF. \n- SOLO STOVE | is amazing for a safe camp fire and is from www.adventurevanlife.com. Use code 'abucklife' for discount site wide.\n- AUTOTERM DIESEL HEATER| We stay warm with a 4KW AUTOTERM Diesel Heater and Engine Pre Heater. Use code 'abucklife' for discount at www.autoterm.store\n- TRELINO TOILET| Our off grid travel would not be possible without our Trelino Toilet. Game Changer. \nClick the link https://tidd.ly/4gwZnsa and use the code 'abucklife' to receive a FREE accessories set when ordering a Trelino composting toilet.\n\nSome links in this description are affiliate links. When you buy through these links, I get a small commission at no extra cost to you. This really supports the channel and helps us to bring better content to you and we really appreciate the support. Thank you.\n\n0:00 Intro\n1:38 The Van - VW Crafter 4motion\n2:15 Head Room \n3:12 Layout\n4:09 Fabwox Rock and Roll Bed\n4:24 Insulation (dodomat)\n5:49 Vandermoon Moon Box Review\n6:28 Showeroom Design\n7:45 Trelino Composting Toilet Review\n9:21 Water Tank and Bobil Hybrid Hot Water System Review\n10:58 Electrical Victron System and Induction Hob\n13:34 Dometic Fridge Review\n15:31 Autoterm 4kw Diesel Heater Review\n16:33 Mattress\n17:04 Jackson Leisure Adventurer Windows Review\n17:49 Vandermoon Moon Organisers Review\n18:13 Storage\n19:01 MaxAir Fans Review\n19:30 Starlink Mini Review\n20:38 L Track and Wall Cladding", "Everything WRONG With Our Self Build Camper Van || Watch This Before You Start Yours!", "d2d04f10-6f48-4714-b50a-0d2526daf771", 10, [], 1291, false, "LyOG8mE3460", "https://www.youtube.com/watch?v=LyOG8mE3460", 43, "/downloads/Vanlife/2025-06-08 Everything WRONG With Our Self Build Camper Van || Watch This Before You Start Yours!/Everything WRONG With Our Self Build Camper Van || Watch This Before You Start Yours! [LyOG8mE3460].mkv", false, false, false, 1, ~U[2025-06-08 07:00:30Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "RATING EVERY PART OF OUR SELF BUILD CAMPER VAN CONVERSION OUT OF 10 || WHAT WOULD WE CHANGE ABOUT OF FIRST VAN CONVERSION BUILD || REVIEWING OUR SELF BUILT VAN CONVERSION, WHAT WOULD WE DO DIFFERENT ||\n\nA camper van conversion can cost anywhere from £1,000 to £20,000—and no matter your budget, that’s a big investment. So in this video, I’m going to rate every part of our self-built VW Crafter camper van out of 10. I built this van from the ground up for my family of four, and we’ve just returned from a six-week Arctic adventure where we tested it in temperatures as low as -15°C. From layout and insulation to heating, electrics, storage, and all the clever little features—we're putting it all to the test. I’ll show you what worked, what didn’t, what I’d change, and what I’d definitely do again. Whether you’re planning your first van or looking to upgrade, I hope this gives you some useful insight. Let’s get into it! \n\nFollow us on Instagram @abucklifeofficial\n\nFirst Access to our NEW Mech! \nhttps://abucklife.myshopify.com/\n\nThank you so much for watching and we can't wait to share more of adventures with you.\nOur van is a VW Crafter Long Wheel Base LWB 4 Motion (4x4/AWD) Van. If you have any questions drop me a comment or dm me! \n\nHere is the full build playlist with a video for each part of the build: https://www.youtube.com/playlist?list=PLIqoHmTCdKe4-7V-pkNPZJ5-Y0W5500S0\n\nQuality Products we Use in our Self Build Camper Van: \n- Our AirFryer Oven https://amzn.to/42TDBtE\n- VANDERMOON MOONBOXES AND MOON ORGANISERS | We love all our VANDERMOON gear, from the moon boxes to the moon organisers our van would not be as functional and light weight without them, \nUse Code 'buck10' for 10% off your order! Check out Vandermoon here https://www.vandermoon.com/eng/en/logowanie?create_account=1&s=buck10\n(you do need to use the link for the discount to work!)\n- AUXBEAM LIGHTING | Use this code 'ABL15' to save 15% off your first order and the link https://www.shareasale.com/u.cfm?d=1262373&m=67515&u=4545378\n- HELINOX | camping furniture is so lightweight, easy to set up and durable. Little man loves his mini chair. Use this link https://tidd.ly/41M7tZF and code 'VN7GQVZ43XDB' for 10% OFF. \n- SOLO STOVE | is amazing for a safe camp fire and is from www.adventurevanlife.com. Use code 'abucklife' for discount site wide.\n- AUTOTERM DIESEL HEATER| We stay warm with a 4KW AUTOTERM Diesel Heater and Engine Pre Heater. Use code 'abucklife' for discount at www.autoterm.store\n- TRELINO TOILET| Our off grid travel would not be possible without our Trelino Toilet. Game Changer. \nClick the link https://tidd.ly/4gwZnsa and use the code 'abucklife' to receive a FREE accessories set when ordering a Trelino composting toilet.\n\nSome links in this description are affiliate links. When you buy through these links, I get a small commission at no extra cost to you. This really supports the channel and helps us to bring better content to you and we really appreciate the support. Thank you.\n\n0:00 Intro\n1:38 The Van - VW Crafter 4motion\n2:15 Head Room \n3:12 Layout\n4:09 Fabwox Rock an (truncated) 11:05:34.005 [debug] QUERY OK source="sources" db=0.2ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.006 [debug] QUERY OK source="media_items" db=0.3ms 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-12-23 20:15:00Z], 10] 11:05:34.007 [debug] QUERY OK source="media_items" db=0.7ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/nicole.and.edden/?hl=en\nSubscribe on YouTube: https://www.youtube.com/@UCQtcuKddjkp3R-J6WrxsmUw \nTheir TikTok: https://www.tiktok.com/@UCQtcuKddjkp3R-J6WrxsmUw \nWebsite: https://anandalivingexperiences.com/our-story\n\nNicole and Edden are two of the most insanely talented builders I've personally ever seen. Could this be one of the greatest builds in existence? To start it's a 4x4 Sprinter Van capable of going anywhere with 1,400w of solar on a tilltable array, 800aH of 12v battery bank storage with a full victron system, huge Cruise and Comfort air con system, heated floors, convertible and motorized BEDS, absolutely incredible artwork / design and so much more. This van absolutely has EVERYTHING... \n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "DIY LUXURY VAN TOUR / BEST Sprinter Van w/ Hidden Shower + Incredible Design / Tiny Home on Wheels", "db6f961e-0c8c-4327-a1e6-2f0e9c9401e7", 10, [], 735, false, "1UPvi1ltk-M", "https://www.youtube.com/watch?v=1UPvi1ltk-M", 44, "/downloads/Vanlife/2024-12-23 DIY LUXURY VAN TOUR ⧸ BEST Sprinter Van w⧸ Hidden Shower + Incredible Design ⧸ Tiny Home on Wheels/DIY LUXURY VAN TOUR ⧸ BEST Sprinter Van w⧸ Hidden Shower + Incredible Design ⧸ Tiny Home on Wheels [1UPvi1ltk-M].mp4", false, false, false, 1, ~U[2024-12-23 20:15:00Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/nicole.and.edden/?hl=en\nSubscribe on YouTube: https://www.youtube.com/@UCQtcuKddjkp3R-J6WrxsmUw \nTheir TikTok: https://www.tiktok.com/@UCQtcuKddjkp3R-J6WrxsmUw \nWebsite: https://anandalivingexperiences.com/our-story\n\nNicole and Edden are two of the most insanely talented builders I've personally ever seen. Could this be one of the greatest builds in existence? To start it's a 4x4 Sprinter Van capable of going anywhere with 1,400w of solar on a tilltable array, 800aH of 12v battery bank storage with a full victron system, huge Cruise and Comfort air con system, heated floors, convertible and motorized BEDS, absolutely incredible artwork / design and so much more. This van absolutely has EVERYTHING... \n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "DIY LUXURY VAN TOUR / BEST Sprinter Van w/ Hidden Shower + Incredible Design / Tiny Home on Wheels", 10, 735, false, "1UPvi1ltk-M", "https://www.youtube.com/watch?v=1UPvi1ltk-M", "/downloads/Vanlife/2024-12-23 DIY LUXURY VAN TOUR ⧸ BEST Sprinter Van w⧸ Hidden Shower + Incredible Design ⧸ Tiny Home on Wheels/DIY LUXURY VAN TOUR ⧸ BEST Sprinter Van w⧸ Hidden Shower + Incredible Design ⧸ Tiny Home on Wheels [1UPvi1ltk-M].mp4", false, ~U[2024-12-23 20:15:00Z]] 11:05:34.008 [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" = ?) [10] 11:05:34.008 [debug] QUERY OK source="media_items" db=0.3ms 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[2022-07-18 16:00:41Z], 10] 11:05:34.009 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Jay does a deep-dive on all the features for this expedition-ready, 4X4 camping platform.\n\n» Subscribe: http://bit.ly/JLGSubscribe\n» Visit the Official Site: http://bit.ly/JLGOfficialSite\n\nTHE BEST OF JAY LENO'S GARAGE\n» Exclusive First Looks: http://bit.ly/JLGExclusives\n» Ultra Rare Supercars: http://bit.ly/JLGSupercars\n» Jay's Book Club: http://bit.ly/JLGBookClub\n\nJAY LENO'S GARAGE ON SOCIAL\nFacebook: http://facebook.com/JayLenosGarage\nTwitter: http://twitter.com/LenosGarage\nInstagram: http://instagram.com/jaylenosgarage/\n\nABOUT JAY LENO'S GARAGE\nA new video every Sunday! Visit Jay Leno's Garage, the Emmy-winning series where Jay Leno gives car reviews, motorcycle reviews, compares cars, and shares his passion and expertise on anything that rolls, explodes, and makes noise. Classic cars, restomods, super cars like the McLaren P1, sports cars like Porsche 918 Spyder and Camaro Z28, cafe racers, vintage cars, and much, much more.\n\nNBC ON SOCIAL:\nYouTube: http://www.youtube.com/nbc\nTwitter: http://Twitter.com/NBC\nFacebook: http://Facebook.com/NBC\nInstagram: http://instagram.com/nbc\n\nInside The EarthRoamer LTi | Jay Leno's Garage", "Inside The EarthRoamer LTi | Jay Leno's Garage", "f56d8ce0-b78b-4f69-acbc-0cc68eb8608b", 10, [], 2554, false, "xG-kVnVwFoo", "https://www.youtube.com/watch?v=xG-kVnVwFoo", 45, "/downloads/Vanlife/2022-07-18 Inside The EarthRoamer LTi | Jay Leno's Garage/Inside The EarthRoamer LTi | Jay Leno's Garage [xG-kVnVwFoo].mp4", false, false, false, 1, ~U[2022-07-18 16:00:41Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Jay does a deep-dive on all the features for this expedition-ready, 4X4 camping platform.\n\n» Subscribe: http://bit.ly/JLGSubscribe\n» Visit the Official Site: http://bit.ly/JLGOfficialSite\n\nTHE BEST OF JAY LENO'S GARAGE\n» Exclusive First Looks: http://bit.ly/JLGExclusives\n» Ultra Rare Supercars: http://bit.ly/JLGSupercars\n» Jay's Book Club: http://bit.ly/JLGBookClub\n\nJAY LENO'S GARAGE ON SOCIAL\nFacebook: http://facebook.com/JayLenosGarage\nTwitter: http://twitter.com/LenosGarage\nInstagram: http://instagram.com/jaylenosgarage/\n\nABOUT JAY LENO'S GARAGE\nA new video every Sunday! Visit Jay Leno's Garage, the Emmy-winning series where Jay Leno gives car reviews, motorcycle reviews, compares cars, and shares his passion and expertise on anything that rolls, explodes, and makes noise. Classic cars, restomods, super cars like the McLaren P1, sports cars like Porsche 918 Spyder and Camaro Z28, cafe racers, vintage cars, and much, much more.\n\nNBC ON SOCIAL:\nYouTube: http://www.youtube.com/nbc\nTwitter: http://Twitter.com/NBC\nFacebook: http://Facebook.com/NBC\nInstagram: http://instagram.com/nbc\n\nInside The EarthRoamer LTi | Jay Leno's Garage", "Inside The EarthRoamer LTi | Jay Leno's Garage", 10, 2554, false, "xG-kVnVwFoo", "https://www.youtube.com/watch?v=xG-kVnVwFoo", "/downloads/Vanlife/2022-07-18 Inside The EarthRoamer LTi | Jay Leno's Garage/Inside The EarthRoamer LTi | Jay Leno's Garage [xG-kVnVwFoo].mp4", false, ~U[2022-07-18 16:00:41Z]] 11:05:34.010 [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" = ?) [10] 11:05:34.010 [debug] QUERY OK source="media_items" db=0.3ms 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-29 15:30:14Z], 10] 11:05:34.011 [debug] QUERY OK source="media_items" db=0.6ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This past weekend during my van trip with Back Road Van Adventures I was introduced to a couple out of Canada who had the most insane interior in their 170\" Sprinter that I had EVER seen. \n\nThis design maximized space by it's use of curves in the cabinetry and they even had room for a full size shower!\n\nIf you'd like to meet members of the #vanlife community Check Out Van Land for scheduled trips!\n►https://vanlandstore.com/blogs/van-adventure-trips\n\n\nLearn How To Build Your Own Van\n►https://vanland.mykajabi.com/van-land... \n\n\n*Follow Our Socials*\n\n_Instagram_\n► https://www.instagram.com/van__land/\n\n_Facebook_\n► https://www.facebook.com/Vanlandstore/\n\n_TikTok_\n► https://www.tiktok.com/@van.land1\n\n#vanbuilder #adventurevan #adventurevan #explorepage #vanlife #mercedesbenz #vanbuilder #sprinterconversion #fyp シ #fypシ゚viral", "Insanely Cool Interior Van Tour", "a087d13a-b0ce-4777-aa76-6853692366f5", 10, [], 892, false, "_eBqZ26LeCQ", "https://www.youtube.com/watch?v=_eBqZ26LeCQ", 46, "/downloads/Vanlife/2024-06-29 Insanely Cool Interior Van Tour/Insanely Cool Interior Van Tour [_eBqZ26LeCQ].mkv", false, false, false, 1, ~U[2024-06-29 15:30:14Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "This past weekend during my van trip with Back Road Van Adventures I was introduced to a couple out of Canada who had the most insane interior in their 170\" Sprinter that I had EVER seen. \n\nThis design maximized space by it's use of curves in the cabinetry and they even had room for a full size shower!\n\nIf you'd like to meet members of the #vanlife community Check Out Van Land for scheduled trips!\n►https://vanlandstore.com/blogs/van-adventure-trips\n\n\nLearn How To Build Your Own Van\n►https://vanland.mykajabi.com/van-land... \n\n\n*Follow Our Socials*\n\n_Instagram_\n► https://www.instagram.com/van__land/\n\n_Facebook_\n► https://www.facebook.com/Vanlandstore/\n\n_TikTok_\n► https://www.tiktok.com/@van.land1\n\n#vanbuilder #adventurevan #adventurevan #explorepage #vanlife #mercedesbenz #vanbuilder #sprinterconversion #fyp シ #fypシ゚viral", "Insanely Cool Interior Van Tour", 10, 892, false, "_eBqZ26LeCQ", "https://www.youtube.com/watch?v=_eBqZ26LeCQ", "/downloads/Vanlife/2024-06-29 Insanely Cool Interior Van Tour/Insanely Cool Interior Van Tour [_eBqZ26LeCQ].mkv", false, ~U[2024-06-29 15:30:14Z]] 11:05:34.012 [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" = ?) [10] 11:05:34.012 [debug] QUERY OK source="media_items" db=0.3ms 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-07-10 15:00:48Z], 10] 11:05:34.014 [debug] QUERY OK source="media_items" db=1.0ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔥 Interested in products used? 🔽\n\nIn this video we show you the step by step process on how we transform a 2023 Ford Transit Van into a livable camper van. It took us two months of 40 hours weeks to finish this project for our client. Full Amazon shipping list is linked below. If you’re interested in a camper van conversion, click this link to learn more: https://forms.gle/RKUjHNQBHF2to6gF8\n\nSupport the channel by purchasing our NEW cleaning product here:\nAmazon: https://www.amazon.com/gp/product/B0DBY3GKZW/ref=ox_sc_act_title_4?smid=A1G0IDKYYD8EYD&psc=1\n\nYou guys asked for it! Here is the link to purchase your “any just like that” merch!\nhttps://builder-blueprint.printify.me/products\n\nProducts Used ⬇️\n\n🛜HomeFi Wifi: Get $27 off your order with code “Hope&Manny”\nhttps://homefi.info/discount/Hope&Manny\n\n🧦 Try the BEST work socks: Get 10% off on my favorite work socks from Camel City Mill with code “BUILDERSBLUEPRINT” \nhttps://manly.link/builders-blueprint-3\n\n🪫 LiTime Electrical:\nUse code BRB8 at checkout to enjoy 8% OFF discount! This offer is valid until July 18th.\nLiTime 12V 230Ah Bluetooth Battery:\n https://www.litime.com/products/12v-230ah-bluetooth-lithium-rv-battery/?ref=BRB\n\nLiTime 3000W lnverter Charger: https://bit.ly/4nKITBB\n\nLiTime 30A MPPT Solar Charge Controller: http://bit.ly/447OVEu\n\nLiTime Prime Day Sale, Don’t miss out this special offers: https://www.litime.com/?ref=BRB\n\n🧑\u200D🔧 Plumbing Items from Plumbingsell: https://plumbingsell.com \nUse code “Blueprint” at checkout for 10% off\n\n💧 WaterDrop Filter:\nhttps://www.waterdropfilter.com/collections/multi-stage-undersink-filtration-system/products/under-counter-water-filter-system-3-stage-tsa?ref=headermenu\n\n🚽 Cuddy Toilet: \nGet $50 Off With The Summer Sale till the end of July \nhttps://compocloset.com/products/cuddy?utm_source=yt&utm_campaign=brb\n\nStove: https://amzn.to/3TASPzm\nFridge: https://amzn.to/464rkFY\nOutdoor Shower: https://amzn.to/4k1MdFl\n\n\nALL Amazon Products Used Here: ▶️https://www.amazon.com/shop/influencer-68a4c225/list/1N983VM2R8QGO?ref_=cm_sw_r_cp_ud_aipsflist_942GZ2HVESHTGXV8XQ8Z\n\nFollow Us On IG & TikTok For RV Tours\nhttps://beerrunbus.wixsite.com/website-1/bio-link\n\n#waterdropfilter #waterfilter #waterpurifier #waterdropfilter #primedaydeal #primedayundersinkwaterfilter\n\nAffiliate Links Used", "How I Built A DIY Camper Van Conversion Start To Finish", "cd8b7ec0-d175-413e-87e2-9cf8a2f3fee7", 10, [], 1956, false, "XUvpwpGyKOI", "https://www.youtube.com/watch?v=XUvpwpGyKOI", 47, "/downloads/Vanlife/2025-07-10 How I Built A DIY Camper Van Conversion Start To Finish/How I Built A DIY Camper Van Conversion Start To Finish [XUvpwpGyKOI].mkv", false, false, false, 2, ~U[2025-07-10 15:00:48Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "🔥 Interested in products used? 🔽\n\nIn this video we show you the step by step process on how we transform a 2023 Ford Transit Van into a livable camper van. It took us two months of 40 hours weeks to finish this project for our client. Full Amazon shipping list is linked below. If you’re interested in a camper van conversion, click this link to learn more: https://forms.gle/RKUjHNQBHF2to6gF8\n\nSupport the channel by purchasing our NEW cleaning product here:\nAmazon: https://www.amazon.com/gp/product/B0DBY3GKZW/ref=ox_sc_act_title_4?smid=A1G0IDKYYD8EYD&psc=1\n\nYou guys asked for it! Here is the link to purchase your “any just like that” merch!\nhttps://builder-blueprint.printify.me/products\n\nProducts Used ⬇️\n\n🛜HomeFi Wifi: Get $27 off your order with code “Hope&Manny”\nhttps://homefi.info/discount/Hope&Manny\n\n🧦 Try the BEST work socks: Get 10% off on my favorite work socks from Camel City Mill with code “BUILDERSBLUEPRINT” \nhttps://manly.link/builders-blueprint-3\n\n🪫 LiTime Electrical:\nUse code BRB8 at checkout to enjoy 8% OFF discount! This offer is valid until July 18th.\nLiTime 12V 230Ah Bluetooth Battery:\n https://www.litime.com/products/12v-230ah-bluetooth-lithium-rv-battery/?ref=BRB\n\nLiTime 3000W lnverter Charger: https://bit.ly/4nKITBB\n\nLiTime 30A MPPT Solar Charge Controller: http://bit.ly/447OVEu\n\nLiTime Prime Day Sale, Don’t miss out this special offers: https://www.litime.com/?ref=BRB\n\n🧑\u200D🔧 Plumbing Items from Plumbingsell: https://plumbingsell.com \nUse code “Blueprint” at checkout for 10% off\n\n💧 WaterDrop Filter:\nhttps://www.waterdropfilter.com/collections/multi-stage-undersink-filtration-system/products/under-counter-water-filter-system-3-stage-tsa?ref=headermenu\n\n🚽 Cuddy Toilet: \nGet $50 Off With The Summer Sale till the end of July \nhttps://compocloset.com/products/cuddy?utm_source=yt&utm_campaign=brb\n\nStove: https://amzn.to/3TASPzm\nFridge: https://amzn.to/464rkFY\nOutdoor Shower: https://amzn.to/4k1MdFl\n\n\nALL Amazon Products Used Here: ▶️https://www.amazon.com/shop/influencer-68a4c225/list/1N983VM2R8QGO?ref_=cm_sw_r_cp_ud_aipsflist_942GZ2HVESHTGXV8XQ8Z\n\nFollow Us On IG & TikTok For RV Tours\nhttps://beerrunbus.wixsite.com/website-1/bio-link\n\n#waterdropfilter #waterfilter #waterpurifier #waterdropfilter #primedaydeal #primedayundersinkwaterfilter\n\nAffiliate Links Used", "How I Built A DIY Camper Van Conversion Start To Finish", 10, 1956, false, "XUvpwpGyKOI", "https://www.youtube.com/watch?v=XUvpwpGyKOI", "/downloads/Vanlife/2025-07-10 How I Built A DIY Camper Van Conversion Start To Finish/How I Built A DIY Camper Van Conversion Start To Finish [XUvpwpGyKOI].mkv", false, ~U[2025-07-10 15:00:48Z]] 11:05:34.014 [debug] QUERY OK source="sources" db=0.1ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.015 [debug] QUERY OK source="media_items" db=0.3ms 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[2015-01-29 22:43:49Z], 10] 11:05:34.015 [debug] QUERY OK source="media_items" db=0.4ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["You've seen the ruggedly capable outside of an EarthRoamer XV-LTS, now step inside the smartly designed and surprisingly spacious interior for a closer look at what makes these vehicles so special.", "ER XVLT Interior Tour", "7d4ac227-e990-4243-bc92-8c3c0b089234", 10, [], 712, false, "GpXPF5EOd4c", "https://www.youtube.com/watch?v=GpXPF5EOd4c", 48, "/downloads/Vanlife/2015-01-29 ER XVLT Interior Tour/ER XVLT Interior Tour [GpXPF5EOd4c].mp4", false, false, false, 1, ~U[2015-01-29 22:43:49Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "You've seen the ruggedly capable outside of an EarthRoamer XV-LTS, now step inside the smartly designed and surprisingly spacious interior for a closer look at what makes these vehicles so special.", "ER XVLT Interior Tour", 10, 712, false, "GpXPF5EOd4c", "https://www.youtube.com/watch?v=GpXPF5EOd4c", "/downloads/Vanlife/2015-01-29 ER XVLT Interior Tour/ER XVLT Interior Tour [GpXPF5EOd4c].mp4", false, ~U[2015-01-29 22:43:49Z]] 11:05:34.016 [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" = ?) [10] 11:05:34.016 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=2.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-02 14:00:34Z], 10] 11:05:34.047 [debug] QUERY OK source="media_items" db=30.0ms idle=2.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["EarthRoamer has long been a symbol of luxury and capability in terms of expedition vehicles. While that luxury of the Earthroamer can be quite expensive, there are some Earthroamer alternatives available in the expedition vehicles market. So, in this video, we'll showcase the 25 Earthroamer Alternatives You Can Consider, including some of the best expedition vehicles.\n\nEarthRoamer Alternatives List:\n\n00:00 - Introduction\n\n01:00 - Accolade XT Unicat Achat\n\n02:40 - Alaskan Campers 850 FB\n\n04:18 - Rossmonster Havn\n\n06:07 - Entegra Coach \n\n08:02 - Wanderbox Outpost 35\n\n09:46 - Dynamax Europa\n\n11:35 - Loki Falcon X15\n\n13:09 - East To West Bravado\n\n14:49 - Dynamax Isata 5\n\n16:27 - Jayco Greyhawk XL\n\n18:18 - Supertramp Megatron \n\n19:36 - TruckHouse BCR \n\n20:55 - Krug Expedition Bedrock XT2\n\n22:10 - Adrenalin Industries AWOL\n\n23:42 - 27North Trekker\n\n25:12 - Freedom Overland cruiser 3.0\n\n26:35 - Wanderbox Outpost 29\n\n28:15 - Tiger Adventure Vehicles Bengal\n\n29:43 - Rossmonster Baja Plus\n\n30:53 - Storyteller Overlanding GXV HILT\n\n32:26 - Freedom Chevy\n\n33:48 - 27North RexRover\n\n35:06 - Hymer ML-T Series\n\n36:18 - Freedom Raptor F350\n\n37:46 - Winnebago Ekko\n-----------------------------------------------------------------------------------------------------------------\nBusiness mail: mailtrailingoffraod@gmail.com\n------------------------------------------------------------------------------------------------------------------\nMusic Source & Credit: YouTube Audio Library\n-----------------------------------------------------------------------------------------------------------------\nVideo you may also like:\n* https://youtu.be/Jl7nrj75MoA\n* https://youtu.be/XYXf2jipyUM\n* https://youtu.be/FM--WjXMiCg\n-----------------------------------------------------------------------------------------------------------------\n* 25 EarthRoamer Alternatives You Can Consider explores some of the most capable expedition vehicles and overlanding trucks for those who dream of going off-grid without the price tag of an EarthRoamer. Models like the EarthRoamer LTi, EarthRoamer LTx, and EarthRoamer SX are legendary, but several EarthRoamer alternatives deliver similar comfort and durability. From a rugged expedition truck to a well-equipped off road camper, these builds are made for serious overlanding and off-road adventures. You’ll also find impressive rigs from Global Expedition Vehicles, truck camper setups, and even converted van life builds that redefine mobility. Whether you’re eyeing a 4x4, 6x6, or full offroad RV, these expedition vehicle 4x4 options are built to handle it all. Our truck camper tour and converted van tour picks show the versatility of modern builds. Perfect for fans of off grid living, overland, and tiny house tour lifestyles, this guide showcases the best expedition and off-road trucks worth exploring.\n-----------------------------------------------------------------------------------------------------------------\nDisclaimer:\n* The following video abides by the YouTube Community Guideline. The footage used in this video is for educational purposes.\n* The footage used in this video follows the Fair Usage Policy “Under Section 107” of the “Copyright Act 1976”. If you have any copyright issues, please send us an email or let us know by commenting below.\n* Some of our content may contain affiliate links, from which we earn some commission, that support us in running this channel.\n\n#expedition #overlanding #4x4 #earthroamer", "25 Earthroamer Alternatives You Can Consider | Expedition Vehicles", "4a0135b4-8e4e-4f49-97b8-043b5ed49e9a", 10, [], 2360, false, "HevJiA-QrBw", "https://www.youtube.com/watch?v=HevJiA-QrBw", 49, "/downloads/Vanlife/2025-11-02 25 Earthroamer Alternatives You Can Consider | Expedition Vehicles/25 Earthroamer Alternatives You Can Consider | Expedition Vehicles [HevJiA-QrBw].mkv", false, false, false, 2, ~U[2025-11-02 14:00:34Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "EarthRoamer has long been a symbol of luxury and capability in terms of expedition vehicles. While that luxury of the Earthroamer can be quite expensive, there are some Earthroamer alternatives available in the expedition vehicles market. So, in this video, we'll showcase the 25 Earthroamer Alternatives You Can Consider, including some of the best expedition vehicles.\n\nEarthRoamer Alternatives List:\n\n00:00 - Introduction\n\n01:00 - Accolade XT Unicat Achat\n\n02:40 - Alaskan Campers 850 FB\n\n04:18 - Rossmonster Havn\n\n06:07 - Entegra Coach \n\n08:02 - Wanderbox Outpost 35\n\n09:46 - Dynamax Europa\n\n11:35 - Loki Falcon X15\n\n13:09 - East To West Bravado\n\n14:49 - Dynamax Isata 5\n\n16:27 - Jayco Greyhawk XL\n\n18:18 - Supertramp Megatron \n\n19:36 - TruckHouse BCR \n\n20:55 - Krug Expedition Bedrock XT2\n\n22:10 - Adrenalin Industries AWOL\n\n23:42 - 27North Trekker\n\n25:12 - Freedom Overland cruiser 3.0\n\n26:35 - Wanderbox Outpost 29\n\n28:15 - Tiger Adventure Vehicles Bengal\n\n29:43 - Rossmonster Baja Plus\n\n30:53 - Storyteller Overlanding GXV HILT\n\n32:26 - Freedom Chevy\n\n33:48 - 27North RexRover\n\n35:06 - Hymer ML-T Series\n\n36:18 - Freedom Raptor F350\n\n37:46 - Winnebago Ekko\n-----------------------------------------------------------------------------------------------------------------\nBusiness mail: mailtrailingoffraod@gmail.com\n------------------------------------------------------------------------------------------------------------------\nMusic Source & Credit: YouTube Audio Library\n-----------------------------------------------------------------------------------------------------------------\nVideo you may also like:\n* https://youtu.be/Jl7nrj75MoA\n* https://youtu.be/XYXf2jipyUM\n* https://youtu.be/FM--WjXMiCg\n-----------------------------------------------------------------------------------------------------------------\n* 25 EarthRoamer Alternatives You Can Consider explores some of the most capable expedition vehicles and overlanding trucks for those who dream of going off-grid without the price tag of an EarthRoamer. Models like the EarthRoamer LTi, EarthRoamer LTx, and EarthRoamer SX are legendary, but several EarthRoamer alternatives deliver similar comfort and durability. From a rugged expedition truck to a well-equipped off road camper, these builds are made for serious overlanding and off-road adventures. You’ll also find impressive rigs from Global Expedition Vehicles, truck camper setups, and even converted van life builds that redefine mobility. Whether you’re eyeing a 4x4, 6x6, or full offroad RV, these expedition vehicle 4x4 options are built to handle it all. Our truck camper tour and converted van tour picks show the versatility of modern builds. Perfect for fans of off grid living, overland, and tiny house tour lifestyles, this guide showcases the best expedition and off-road trucks worth exploring.\n-----------------------------------------------------------------------------------------------------------------\nDisclaimer:\n* The following video abides by the YouTube Community Guideline. The footage used in this video is for educational purposes.\n* The footage used in this video follows the Fair Usage Policy “Under Section 107” of the “Copyright Act 1976”. If you have any copyright issues, please send us (truncated) 11:05:34.047 [debug] QUERY OK source="sources" db=0.3ms idle=32.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.048 [debug] QUERY OK source="media_items" db=0.4ms idle=32.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2015-01-30 14:53:43Z], 10] 11:05:34.049 [debug] QUERY OK source="media_items" db=0.5ms idle=32.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join EarthRoamer Founder & CEO Bill Swails for an in-depth tour of the exterior features on an EarthRoamer XV-LTS. Discover what makes these hand-built, luxury Xpedition Vehicles so uniquely capable - and comfortable - in all types of weather and terrain.", "ER XVLT Exterior Tour", "be88e72c-5554-41df-a267-ecb6db905f9b", 10, [], 820, false, "pHu-PkzA3Cw", "https://www.youtube.com/watch?v=pHu-PkzA3Cw", 50, "/downloads/Vanlife/2015-01-30 ER XVLT Exterior Tour/ER XVLT Exterior Tour [pHu-PkzA3Cw].mp4", false, false, false, 1, ~U[2015-01-30 14:53:43Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Join EarthRoamer Founder & CEO Bill Swails for an in-depth tour of the exterior features on an EarthRoamer XV-LTS. Discover what makes these hand-built, luxury Xpedition Vehicles so uniquely capable - and comfortable - in all types of weather and terrain.", "ER XVLT Exterior Tour", 10, 820, false, "pHu-PkzA3Cw", "https://www.youtube.com/watch?v=pHu-PkzA3Cw", "/downloads/Vanlife/2015-01-30 ER XVLT Exterior Tour/ER XVLT Exterior Tour [pHu-PkzA3Cw].mp4", false, ~U[2015-01-30 14:53:43Z]] 11:05:34.050 [debug] QUERY OK source="sources" db=0.2ms idle=33.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.050 [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[2014-11-26 18:39:13Z], 10] 11:05:34.051 [debug] QUERY OK source="media_items" db=0.6ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The EarthRoamer team prepared and cooked an entire Thanksgiving dinner in our demo Roamer - no shore power, no generator, 100% off-the-grid! Check out the powerful and efficient space inside an EarthRoamer!", "An EarthRoamer Thanksgiving", "ca8f55a1-f805-459c-a309-88d90bb0f4fb", 10, [], 262, false, "33qZ3foVqi4", "https://www.youtube.com/watch?v=33qZ3foVqi4", 51, "/downloads/Vanlife/2014-11-26 An EarthRoamer Thanksgiving/An EarthRoamer Thanksgiving [33qZ3foVqi4].mp4", false, false, false, 1, ~U[2014-11-26 18:39:13Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The EarthRoamer team prepared and cooked an entire Thanksgiving dinner in our demo Roamer - no shore power, no generator, 100% off-the-grid! Check out the powerful and efficient space inside an EarthRoamer!", "An EarthRoamer Thanksgiving", 10, 262, false, "33qZ3foVqi4", "https://www.youtube.com/watch?v=33qZ3foVqi4", "/downloads/Vanlife/2014-11-26 An EarthRoamer Thanksgiving/An EarthRoamer Thanksgiving [33qZ3foVqi4].mp4", false, ~U[2014-11-26 18:39:13Z]] 11:05:34.052 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [10] 11:05:34.052 [debug] QUERY OK source="media_items" db=0.3ms 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[2020-04-16 20:00:15Z], 10] 11:05:34.054 [debug] QUERY OK source="media_items" db=1.0ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The newest EarthRoamer model represents the epitome of XV innovation, integrating the best qualities of LTS and HD while introducing concepts that have never been seen before among Xpedition vehicles. Its carbon-fiber vacuum infused camper body, lithium-ion battery bank, bunk side windows, and increased interior height are all built on the Ford F-550 chassis that we know and love. This fully-equipped, ultimate off-road camper is the most advanced EarthRoamer XV ever made and comes ready to hit the road, or the terrain of your choosing, the moment we hand you the keys.\n\nEven though the advances in the LTi are, in many cases, revolutionary, there are also many evolutionary changes. We don’t make changes for the sake of making changes — we make changes that truly enhance or improve upon the LT’s mission of providing fully self-contained, luxury off-grid living in a robust overland vehicle. The fundamental design of the original LT is carried on in the latest LTi design, but many attributes of the design have been improved and advanced using the latest technologies available today. \n\nCheck out some of the LTi specs below:\n\nChassis\nFord F-550 4WD\nTrim: Lariat\nEngine: 6.7L Turbo Diesel\nHorsepower: 330\nTorque: 750\nTransmission: 10-Speed Automatic\nEarthRoamer Designed Rear Pivot Camper Mounting System\n\nDimensions\nLength: 29′\nWidth: 8′\nMax Height: 12′\nMin Height: 11’6″\nApproach Angle: 30°\nDeparture Angle: 22°\nBreakover Angle: 14°\nGround Clearance: 12.5\"\n\nCapacities\nFuel: 95 Gallons\nFresh Water: 100 Gallons\nGrey Water: 40 Gallons\nBlack Water Cassette: 5 Gallons\nBatteries: 11,000 Watt Hours\nSolar: 1,300 Watts\nSeating: Up to 6 People\nSleeping: Up to 4 People\n\nFor more information, give us a call at 303-833-7330 or send us an email at info@earthroamer.com.\n\n\nVideo by: Keith Potter and Boulder Media House", "EarthRoamer LTi Exterior Walkthrough", "15bec9bb-4980-4b00-933d-97e9e752b4a0", 10, [], 935, false, "v4kCVrk5jGM", "https://www.youtube.com/watch?v=v4kCVrk5jGM", 52, "/downloads/Vanlife/2020-04-16 EarthRoamer LTi Exterior Walkthrough/EarthRoamer LTi Exterior Walkthrough [v4kCVrk5jGM].mkv", false, false, false, 1, ~U[2020-04-16 20:00:15Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The newest EarthRoamer model represents the epitome of XV innovation, integrating the best qualities of LTS and HD while introducing concepts that have never been seen before among Xpedition vehicles. Its carbon-fiber vacuum infused camper body, lithium-ion battery bank, bunk side windows, and increased interior height are all built on the Ford F-550 chassis that we know and love. This fully-equipped, ultimate off-road camper is the most advanced EarthRoamer XV ever made and comes ready to hit the road, or the terrain of your choosing, the moment we hand you the keys.\n\nEven though the advances in the LTi are, in many cases, revolutionary, there are also many evolutionary changes. We don’t make changes for the sake of making changes — we make changes that truly enhance or improve upon the LT’s mission of providing fully self-contained, luxury off-grid living in a robust overland vehicle. The fundamental design of the original LT is carried on in the latest LTi design, but many attributes of the design have been improved and advanced using the latest technologies available today. \n\nCheck out some of the LTi specs below:\n\nChassis\nFord F-550 4WD\nTrim: Lariat\nEngine: 6.7L Turbo Diesel\nHorsepower: 330\nTorque: 750\nTransmission: 10-Speed Automatic\nEarthRoamer Designed Rear Pivot Camper Mounting System\n\nDimensions\nLength: 29′\nWidth: 8′\nMax Height: 12′\nMin Height: 11’6″\nApproach Angle: 30°\nDeparture Angle: 22°\nBreakover Angle: 14°\nGround Clearance: 12.5\"\n\nCapacities\nFuel: 95 Gallons\nFresh Water: 100 Gallons\nGrey Water: 40 Gallons\nBlack Water Cassette: 5 Gallons\nBatteries: 11,000 Watt Hours\nSolar: 1,300 Watts\nSeating: Up to 6 People\nSleeping: Up to 4 People\n\nFor more information, give us a call at 303-833-7330 or send us an email at info@earthroamer.com.\n\n\nVideo by: Keith Potter and Boulder Media House", "EarthRoamer LTi Exterior Walkthrough", 10, 935, false, "v4kCVrk5jGM", "https://www.youtube.com/watch?v=v4kCVrk5jGM", "/downloads/Vanlife/2020-04-16 EarthRoamer LTi Exterior Walkthrough/EarthRoamer LTi Exterior Walkthrough [v4kCVrk5jGM].mkv", false, ~U[2020-04-16 20:00:15Z]] 11:05:34.054 [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" = ?) [10] 11:05:34.055 [debug] QUERY OK source="media_items" db=0.3ms 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-01-30 19:00:06Z], 10] 11:05:34.056 [debug] QUERY OK source="media_items" db=0.9ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Multi night solo winter camping in Idaho! Big thanks to Huckberry for sponsoring this video: https://glnk.io/drewsimms #huckberry #onestopmensshop\n\nGarmin Tread XL - https://www.garmin.com/es-AR/p/732617\nGarmin Tread XL - https://amzn.to/41aX0FK\n\nOoni pizza oven - https://amzn.to/4aDsjx3\n\nInstagram - https://www.instagram.com/drew.simms/\nContact - drewsimmsphotography@gmail.com\nHOW I FIND CAMPING: https://rb.gy/yuz8yo - 30 Day FREE trial of the DYRT PRO with code \"drew\"\n\nEssential Camera Gear: \nSony A7siii - https://amzn.to/4faWT29\nDRONE - DJI Mavic 3 Pro -https://amzn.to/3ArC2cm\nSony 16-35mm f2.8 - https://amzn.to/4eNCKj7\nSony 70 -200mm 2.8 - https://amzn.to/4f6Dnnx\nSony 100-400mm - https://amzn.to/3NuB4Px\nPeak Design Tripod - https://amzn.to/4eND15D\nFavorite Hard Drive - https://amzn.to/40hRMZI\n\nTruck Built By:\n\nMountain Yotas - https://bit.ly/3Tg1s3r\nFour Wheel Campers website: https://bit.ly/4acwoqM\"\nLong Range America Fuel Tanks USE CODE “DREW”- https://rb.gy/gvmzx9\nGoat Shocks - https://bit.ly/3t9S8Ud \n10% OFF Backwoods with code \"DREWSIMMS\" - https://rb.gy/3f3ic7\nDakota Lithium 135ah Batteries - https://dakotalithium.com/dl5/DrewSimms/\nRedarc Power System -\nhttps://www.redarcelectronics.com/us/\n\nLINKS to the rest of my truck, camper, photography and camping gear\nhttps://www.drewsimms.com/gear\n\nI find all my songs on Musicbed! Elevate your videos with record-label quality music: https://fm.pxf.io/oekJ1o", "Solo Winter Camping in My Custom Truck Camper", "2105620b-ef1a-4b14-a4bd-c548f68423f5", 10, [], 3078, false, "5yJA3BX-JZo", "https://www.youtube.com/watch?v=5yJA3BX-JZo", 53, "/downloads/Vanlife/2025-01-30 Solo Winter Camping in My Custom Truck Camper/Solo Winter Camping in My Custom Truck Camper [5yJA3BX-JZo].mkv", false, false, false, 1, ~U[2025-01-30 19:00:06Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Multi night solo winter camping in Idaho! Big thanks to Huckberry for sponsoring this video: https://glnk.io/drewsimms #huckberry #onestopmensshop\n\nGarmin Tread XL - https://www.garmin.com/es-AR/p/732617\nGarmin Tread XL - https://amzn.to/41aX0FK\n\nOoni pizza oven - https://amzn.to/4aDsjx3\n\nInstagram - https://www.instagram.com/drew.simms/\nContact - drewsimmsphotography@gmail.com\nHOW I FIND CAMPING: https://rb.gy/yuz8yo - 30 Day FREE trial of the DYRT PRO with code \"drew\"\n\nEssential Camera Gear: \nSony A7siii - https://amzn.to/4faWT29\nDRONE - DJI Mavic 3 Pro -https://amzn.to/3ArC2cm\nSony 16-35mm f2.8 - https://amzn.to/4eNCKj7\nSony 70 -200mm 2.8 - https://amzn.to/4f6Dnnx\nSony 100-400mm - https://amzn.to/3NuB4Px\nPeak Design Tripod - https://amzn.to/4eND15D\nFavorite Hard Drive - https://amzn.to/40hRMZI\n\nTruck Built By:\n\nMountain Yotas - https://bit.ly/3Tg1s3r\nFour Wheel Campers website: https://bit.ly/4acwoqM\"\nLong Range America Fuel Tanks USE CODE “DREW”- https://rb.gy/gvmzx9\nGoat Shocks - https://bit.ly/3t9S8Ud \n10% OFF Backwoods with code \"DREWSIMMS\" - https://rb.gy/3f3ic7\nDakota Lithium 135ah Batteries - https://dakotalithium.com/dl5/DrewSimms/\nRedarc Power System -\nhttps://www.redarcelectronics.com/us/\n\nLINKS to the rest of my truck, camper, photography and camping gear\nhttps://www.drewsimms.com/gear\n\nI find all my songs on Musicbed! Elevate your videos with record-label quality music: https://fm.pxf.io/oekJ1o", "Solo Winter Camping in My Custom Truck Camper", 10, 3078, false, "5yJA3BX-JZo", "https://www.youtube.com/watch?v=5yJA3BX-JZo", "/downloads/Vanlife/2025-01-30 Solo Winter Camping in My Custom Truck Camper/Solo Winter Camping in My Custom Truck Camper [5yJA3BX-JZo].mkv", false, ~U[2025-01-30 19:00:06Z]] 11:05:34.056 [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" = ?) [10] 11:05:34.057 [debug] QUERY OK source="media_items" db=0.3ms 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[2023-02-21 22:00:34Z], 10] 11:05:34.059 [debug] QUERY OK source="media_items" db=1.3ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["17 RV overnighters better than Walmart - Big 2023 Changes! (RV Life) Welcome to our latest RV life vlog showcasing 17 incredible RV overnight parking options for RVers in 2023 that are much better than Walmart. If you're tired of RV camping in cramped parking lots and are looking for unique, safe, and affordable RV overnighters, then this video is a must-watch.\n\nIn this video, we'll be highlighting a range of options that cater to every type of RVer. We've got you covered with a range of overnighters. These incredible overnight parking options are sure to make your RV life more exciting and enjoyable. So join us on this journey and discover some of the best places to park your RV overnight in 2023. Don't forget to subscribe to our channel for more amazing RV life content.\n\nBe a part of the most genuine and supportive Las Vegas and Travel community around by joining the TIUW Insiders on ❤️ Patreon \n\n👉 https://www.patreon.com/turnitupworld (Get AD FREE TIUW Videos, Exclusive Merch and Content, access to the secret Facebook group, your name in our videos, meet-up invites, and monthly livestreams and more.) \n\n ► 🔴 If you're new, Subscribe! →: https://bit.ly/3yTFUiv\n\n #rvlife #rvliving #rv\n\n📷 🎒 Our GEAR and More:\n(Buying through these affiliate links, you'll be supporting this channel)\nhttps://www.amazon.com/shop/turnitupworld\n🚲 -Our E-BIKES are Lectric Bikes More info here 👉 https://lectricebikes.sjv.io/rnjXvd\n____________\n\nAdditional Ways to Support TIUW:\n🥰New Merch:\n👉 https://turnitupworld.creator-spring.com/\n\n 🪙 - Donate via paypal\nhttps://paypal.me/turnitupworld \n\n📧 Sign up to our Ultimate Newsletter\nhttps://www.turnitupworld.com/newsletter\n\n📬 - Send us some Fam mail: \nTurn It Up World\nP.O. Box 20220\nLas Vegas, NV 89112\nThank you for joining us!\n\n__________\n►If you're new, Subscribe! →: https://bit.ly/3yTFUiv\n\nWATCH NEXT: ▶️ BINGE WATCH TURN IT UP WORLD from the Beginning! \n► https://www.youtube.com/playlist?list=PLjH5Y1UZk8pzgVDrEz_cnRx19GdFFzdXx\n\n* WHERE WE GET ALL OF OUR MUSIC*\nhttps://www.epidemicsound.com/referral/8l4dec/\n\n====Follow Us====\n👍 Instagram - http://www.instagram.com/turnitupworld\n👍Facebook- https://www.facebook.com/turnitupworld\n👍Twitter - http://www.twitter.com/turnitupworld\n_ __ _ _ _ _ _ _ _ _ _ \n\n📷 🎒 Our GEAR and More:\n(Buying through these affiliate links, you'll be supporting this channel)\nhttps://www.amazon.com/shop/turnitupworld\n____________\n\nNew to Airbnb? Save $40 when you sign up with our link. We'll get a $20 credit. YAY!! \nhttps://www.airbnb.com/c/tanyav627?currency=USD\n\nAwesome Travel Credit Card with great travel perks we use all the time:\nAmerican Express Platinum - Apply for an American Express Card with this link. We can both get rewarded if you're approved! \nApply for an American Express Card with this link. We can both get rewarded if you're approved! http://refer.amex.us/TANYAVMdVW?xl=cp15\n\n**We ONLY include affiliate links for products we use, trust and absolutely love. If you make a purchase after clicking on our links, we may earn a commission which helps us continue our travels and produce more videos.**\n\n🙋🏾\u200D♀️ About Us🙋🏻\u200D♂️\n\nWe're Tanya and Dave. Mr. and Mrs. World Traveler. We not only share the same birthday..I know right!... We share the same passion for travel and encouraging others to do the same. This channel for entertainment purposes only. We are not experts and are not making recommendations. We share our opinions and what works for us, but definitely do your own research and make your own decisions. \n©All uploads are our intellectual property. You do not have permission to re-use any part of them without our written consent.", "17 RV Overnighters Better than Walmart - BIG 2023 Changes! (RV Life)", "5a9b55bc-0ef9-42b1-9ec0-20ef99ffb985", 10, [], 854, false, "zCcwo63hpWs", "https://www.youtube.com/watch?v=zCcwo63hpWs", 54, "/downloads/Vanlife/2023-02-21 17 RV Overnighters Better than Walmart - BIG 2023 Changes! (RV Life)/17 RV Overnighters Better than Walmart - BIG 2023 Changes! (RV Life) [zCcwo63hpWs].mp4", false, false, false, 1, ~U[2023-02-21 22:00:34Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "17 RV overnighters better than Walmart - Big 2023 Changes! (RV Life) Welcome to our latest RV life vlog showcasing 17 incredible RV overnight parking options for RVers in 2023 that are much better than Walmart. If you're tired of RV camping in cramped parking lots and are looking for unique, safe, and affordable RV overnighters, then this video is a must-watch.\n\nIn this video, we'll be highlighting a range of options that cater to every type of RVer. We've got you covered with a range of overnighters. These incredible overnight parking options are sure to make your RV life more exciting and enjoyable. So join us on this journey and discover some of the best places to park your RV overnight in 2023. Don't forget to subscribe to our channel for more amazing RV life content.\n\nBe a part of the most genuine and supportive Las Vegas and Travel community around by joining the TIUW Insiders on ❤️ Patreon \n\n👉 https://www.patreon.com/turnitupworld (Get AD FREE TIUW Videos, Exclusive Merch and Content, access to the secret Facebook group, your name in our videos, meet-up invites, and monthly livestreams and more.) \n\n ► 🔴 If you're new, Subscribe! →: https://bit.ly/3yTFUiv\n\n #rvlife #rvliving #rv\n\n📷 🎒 Our GEAR and More:\n(Buying through these affiliate links, you'll be supporting this channel)\nhttps://www.amazon.com/shop/turnitupworld\n🚲 -Our E-BIKES are Lectric Bikes More info here 👉 https://lectricebikes.sjv.io/rnjXvd\n____________\n\nAdditional Ways to Support TIUW:\n🥰New Merch:\n👉 https://turnitupworld.creator-spring.com/\n\n 🪙 - Donate via paypal\nhttps://paypal.me/turnitupworld \n\n📧 Sign up to our Ultimate Newsletter\nhttps://www.turnitupworld.com/newsletter\n\n📬 - Send us some Fam mail: \nTurn It Up World\nP.O. Box 20220\nLas Vegas, NV 89112\nThank you for joining us!\n\n__________\n►If you're new, Subscribe! →: https://bit.ly/3yTFUiv\n\nWATCH NEXT: ▶️ BINGE WATCH TURN IT UP WORLD from the Beginning! \n► https://www.youtube.com/playlist?list=PLjH5Y1UZk8pzgVDrEz_cnRx19GdFFzdXx\n\n* WHERE WE GET ALL OF OUR MUSIC*\nhttps://www.epidemicsound.com/referral/8l4dec/\n\n====Follow Us====\n👍 Instagram - http://www.instagram.com/turnitupworld\n👍Facebook- https://www.facebook.com/turnitupworld\n👍Twitter - http://www.twitter.com/turnitupworld\n_ __ _ _ _ _ _ _ _ _ _ \n\n📷 🎒 Our GEAR and More:\n(Buying through these affiliate links, you'll be supporting this channel)\nhttps://www.amazon.com/shop/turnitupworld\n____________\n\nNew to Airbnb? Save $40 when you sign up with our link. We'll get a $20 credit. YAY!! \nhttps://www.airbnb.com/c/tanyav627?currency=USD\n\nAwesome Travel Credit Card with great travel perks we use all the time:\nAmerican Express Platinum - Apply for an American Express Card with this link. We can both get rewarded if you're approved! \nApply for an American Express Card with this link. We can both get rewarded if you're approved! http://refer.amex.us/TANYAVMdVW?xl=cp15\n\n**We ONLY include affiliate links for products we use, tr (truncated) 11:05:34.059 [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" = ?) [10] 11:05:34.059 [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[2023-05-26 23:48:57Z], 10] 11:05:34.061 [debug] QUERY OK source="media_items" db=0.8ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["When living in a car, finding the perfect sleeping spot can make all the difference in ensuring a restful night's sleep. As someone who understands the importance of a good night's sleep while on the road, I share my personal insights and recommendations to help you find ultimate comfort and serenity. I've carefully curated this list to ensure you wake up refreshed and ready for adventure. Get ready to elevate your sleep game and embrace the joy of a peaceful slumber amidst breathtaking surroundings.\n\nBe part of the SNACK SQUAD! Exclusive behind the scenes content. \nbit.ly/snacksquadmember\n\nFind this content helpful or entertaining? \n ► One Time Donation (for gas, repairs or coffee!)\n PayPal: https://paypal.me/allisonsharpe\n Cash App: https://cash.app/$travelsnacks\n Venmo: https://venmo.com/travelsnacks_\n\n► SUPPORT FOR FREE by shopping on Amazon:\n https://amzn.to/35zqsXA\n\n▼ CONNECT WITH ALLISON\n Official Site → https://allisonsharpe.com\n Instagram → https://instagram.com/travelsnacks_\n TikTok → https://tiktok.com/@travelsnacks\n YouTube → https://youtube.com/c/travelsnacks\n\n#livinginavan #solofemalenomad #vanlife\n\nMusic: \nTravel Snacks Theme Song: Vocals -Allison Sharpe, Music - Quincas Moreira\nAll music from: YouTube Audio Library or Epidemic Sound\n\nDisclaimer: Product links may be affiliate links to products/services I've personally used and enjoyed. This helps support the channel with no extra cost to you. Thanks!", "Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫", "b8a7703a-42af-41ca-855e-fc076f506cd2", 10, [], 1337, false, "ZnpT_vD3Ujs", "https://www.youtube.com/watch?v=ZnpT_vD3Ujs", 55, "/downloads/Vanlife/2023-05-26 Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫/Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫 [ZnpT_vD3Ujs].mp4", false, false, false, 1, ~U[2023-05-26 23:48:57Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "When living in a car, finding the perfect sleeping spot can make all the difference in ensuring a restful night's sleep. As someone who understands the importance of a good night's sleep while on the road, I share my personal insights and recommendations to help you find ultimate comfort and serenity. I've carefully curated this list to ensure you wake up refreshed and ready for adventure. Get ready to elevate your sleep game and embrace the joy of a peaceful slumber amidst breathtaking surroundings.\n\nBe part of the SNACK SQUAD! Exclusive behind the scenes content. \nbit.ly/snacksquadmember\n\nFind this content helpful or entertaining? \n ► One Time Donation (for gas, repairs or coffee!)\n PayPal: https://paypal.me/allisonsharpe\n Cash App: https://cash.app/$travelsnacks\n Venmo: https://venmo.com/travelsnacks_\n\n► SUPPORT FOR FREE by shopping on Amazon:\n https://amzn.to/35zqsXA\n\n▼ CONNECT WITH ALLISON\n Official Site → https://allisonsharpe.com\n Instagram → https://instagram.com/travelsnacks_\n TikTok → https://tiktok.com/@travelsnacks\n YouTube → https://youtube.com/c/travelsnacks\n\n#livinginavan #solofemalenomad #vanlife\n\nMusic: \nTravel Snacks Theme Song: Vocals -Allison Sharpe, Music - Quincas Moreira\nAll music from: YouTube Audio Library or Epidemic Sound\n\nDisclaimer: Product links may be affiliate links to products/services I've personally used and enjoyed. This helps support the channel with no extra cost to you. Thanks!", "Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫", 10, 1337, false, "ZnpT_vD3Ujs", "https://www.youtube.com/watch?v=ZnpT_vD3Ujs", "/downloads/Vanlife/2023-05-26 Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫/Where to Park When Living in a Car!! (TOP 27 Places to Sleep!!) 🤫 [ZnpT_vD3Ujs].mp4", false, ~U[2023-05-26 23:48:57Z]] 11:05:34.061 [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" = ?) [10] 11:05:34.062 [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-05-26 21:10:29Z], 10] 11:05:34.063 [debug] QUERY OK source="media_items" db=1.2ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We are FED UP we are with some RV campgrounds destroying the sense of community and adventure that RV life is all about! \n\nReference Article: https://rvparkiq.com/industry-insights/new-laws-for-campground-owners/ \n\nOur preferred resource for RV accessories is https://gratefulglamper.com/etrailer. Allow their customer support to help you get the right accessory for your specific RV. \n\nThe ONLY 💩 waste tank 🧻 treatments we use and recommend! https://gratefulglamper.com/unique \n\nIntro: 0:00\nRefused: 0:46\nThe Experiment: 1:45\nExcluding Others: 2:30\nEconomic Discrimination 4:07\nRV Mattress: 5:30\nResale Affected: 7:09\nExperiment results: 7:50\nLimited Travel Options: 8:55\n\nWho are the Grateful Glampers? Watch our intro here: https://link.gratefulglamper.com/intro\n🏔 Originally from Colorado, we dreamed of living a travel and adventure lifestyle but stuck in a 9-5 grind, we had no clue how we would break out of the mold. In 2017 we bought our first RV and it all changed! \n✅ If you’d like to learn more, we suggest starting with this playlist from the very beginning of our journey: https://link.gratefulglamper.com/intro\n\n🎒 Want ideas for MUST-have RV gear? Check out our Amazon store! We have idea lists to help you outfit your RV, make RV easier, and more! https://video.gratefulglamper.com/amazon/gratefulglamper\n\nOR Check out all the DEALS we have arranged with our partners on products and services for RV Living and travel: https://gratefulglamper.com/partners/\n\n💙 Grateful Glamper Insiders💙 https://gratefulglamper.com/insiders\nJoin the most amazing RV community ever. Get our welcome pack in the mail, invitations to meet-ups, access to giveaways, and let us follow you in our secret Facebook group with over hundreds of other Insiders. We'd love to get to know you too!\n\n💬Join the conversation with other RVers on our FREE Discord channel! \nhttps://gratefulglamper.com/discord\n\n🌎 Visit our blog for more campground info, Reviews, and RV Living Tips: \nhttps://gratefulglamper.com/blog/\n\n▶︎ Subscribe for more: \nhttps://video.gratefulglamper.com/youtube/channel/followus\n\n▶︎ Grateful Glamper Playlists:\nRV Life Favorites (START HERE) https://link.gratefulglamper.com/rvlifefavorites\n\nRV Tours: https://link.gratefulglamper.com/rvtour\n\nRV Newbies: https://link.gratefulglamper.com/rvnewbies\n\nALL LOCATIONS: https://link.gratefulglamper.com/locations\n\n▶︎Watch more Top Voted Videos from Grateful Glamper: \n10 DIY Organizing Ideas From Ikea! https://link.gratefulglamper.com/ikeaorganization\n\nKicked Out Of Our Campground! \nhttps://link.gratefulglamper.com/kickedout\n\nTop 5 Best Campgrounds In America (MUST SEE Campsites for RV Living) \nhttps://link.gratefulglamper.com/top5campgrounds\n\n📱 UPDATES on Social 📱 \nhttps://link.gratefulglamper.com/facebook\nhttps://link.gratefulglamper.com/instagram\nhttps://link.gratefulglamper.com/youtube\n\nGrateful Glamper, All Rights Reserved\n*This channel is for entertainment purposes only. We are not RV or travel experts. We share our opinions and what works for us, but you should do your own research. #rvlife #rvlivingwithkids #gratefulglamper", "The Unbelievable Rule That's Destroying The RV Community", "610f7901-76d1-4118-8e74-63abe3c53f93", 10, [], 667, false, "rzvYOd3cv1I", "https://www.youtube.com/watch?v=rzvYOd3cv1I", 56, "/downloads/Vanlife/2024-05-26 The Unbelievable Rule That's Destroying The RV Community/The Unbelievable Rule That's Destroying The RV Community [rzvYOd3cv1I].mkv", false, false, false, 2, ~U[2024-05-26 21:10:29Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "We are FED UP we are with some RV campgrounds destroying the sense of community and adventure that RV life is all about! \n\nReference Article: https://rvparkiq.com/industry-insights/new-laws-for-campground-owners/ \n\nOur preferred resource for RV accessories is https://gratefulglamper.com/etrailer. Allow their customer support to help you get the right accessory for your specific RV. \n\nThe ONLY 💩 waste tank 🧻 treatments we use and recommend! https://gratefulglamper.com/unique \n\nIntro: 0:00\nRefused: 0:46\nThe Experiment: 1:45\nExcluding Others: 2:30\nEconomic Discrimination 4:07\nRV Mattress: 5:30\nResale Affected: 7:09\nExperiment results: 7:50\nLimited Travel Options: 8:55\n\nWho are the Grateful Glampers? Watch our intro here: https://link.gratefulglamper.com/intro\n🏔 Originally from Colorado, we dreamed of living a travel and adventure lifestyle but stuck in a 9-5 grind, we had no clue how we would break out of the mold. In 2017 we bought our first RV and it all changed! \n✅ If you’d like to learn more, we suggest starting with this playlist from the very beginning of our journey: https://link.gratefulglamper.com/intro\n\n🎒 Want ideas for MUST-have RV gear? Check out our Amazon store! We have idea lists to help you outfit your RV, make RV easier, and more! https://video.gratefulglamper.com/amazon/gratefulglamper\n\nOR Check out all the DEALS we have arranged with our partners on products and services for RV Living and travel: https://gratefulglamper.com/partners/\n\n💙 Grateful Glamper Insiders💙 https://gratefulglamper.com/insiders\nJoin the most amazing RV community ever. Get our welcome pack in the mail, invitations to meet-ups, access to giveaways, and let us follow you in our secret Facebook group with over hundreds of other Insiders. We'd love to get to know you too!\n\n💬Join the conversation with other RVers on our FREE Discord channel! \nhttps://gratefulglamper.com/discord\n\n🌎 Visit our blog for more campground info, Reviews, and RV Living Tips: \nhttps://gratefulglamper.com/blog/\n\n▶︎ Subscribe for more: \nhttps://video.gratefulglamper.com/youtube/channel/followus\n\n▶︎ Grateful Glamper Playlists:\nRV Life Favorites (START HERE) https://link.gratefulglamper.com/rvlifefavorites\n\nRV Tours: https://link.gratefulglamper.com/rvtour\n\nRV Newbies: https://link.gratefulglamper.com/rvnewbies\n\nALL LOCATIONS: https://link.gratefulglamper.com/locations\n\n▶︎Watch more Top Voted Videos from Grateful Glamper: \n10 DIY Organizing Ideas From Ikea! https://link.gratefulglamper.com/ikeaorganization\n\nKicked Out Of Our Campground! \nhttps://link.gratefulglamper.com/kickedout\n\nTop 5 Best Campgrounds In America (MUST SEE Campsites for RV Living) \nhttps://link.gratefulglamper.com/top5campgrounds\n\n📱 UPDATES on Social 📱 \nhttps://link.gratefulglamper.com/facebook\nhttps://link.gratefulglamper.com/instagram\nhttps://link.gratefulglamper.com/youtube\n\nGrateful Glamper, All Rights Reserved\n*This channel is for entertainment purposes only. We are not RV or travel experts. We share our opinions and what works for us, but you should do your own research. #rvlife #rvlivingwithkids #gratefulglamper", "The Unbelievable Rule That's Destroying The RV Community", 10, 667, false, "rzvYOd3cv1I", "https://www.youtube.com/watch?v=rzvYOd3cv1I", "/downloads/Vanlife/2024-05-26 The Unbelievable Rule That's Destroying The RV Community/The Unbelievable Rule That's Destroying The RV Community [rzvYOd3cv1I].mkv", false, ~U[2024-05-26 21:10:29Z]] 11:05:34.064 [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" = ?) [10] 11:05:34.064 [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[2022-07-13 21:04:25Z], 10] 11:05:34.081 [debug] QUERY OK source="media_items" db=16.4ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sorry for the long absence but I have quit van life and this is the story behind why I stopped posting YouTube videos and why I prematurely quit even though my plan was to travel for an entire year. Thanks for being a fan and thank you for sticking around! Rambo and I love you all!\n\n🎦 LOOKING FOR A MENTOR? 🎦\nI’ll be your Amazon Mentor: https://www.fiverr.com/s/bdYQ5vP\nI’ll be your YouTube Mentor: https://www.fiverr.com/s/pdBKjeY\n\n⭐ WAYS TO SUPPORT ME (IF YOU WANT) ⭐\n-Buy a Super Thanks\n-Donate via PayPal: https://tinyurl.com/Thank-You-Will\n-Buy me a coffee: https://buymeacoffee.com/petrohead\n\n🎬 MY CAMERA GEAR 🎬\n✔️ Sony ZV-1 camera: https://amzn.to/3xGLRlp\n✔️ Collapsible geen screen: https://amzn.to/45ZzEVx\n✔️ LED Video Lighting Kit: https://amzn.to/4cUf5vP\n✔️ Photography lighting umbrella kit: https://amzn.to/4cE3hy7\n✔️ Teleprompter: https://amzn.to/3S0ddKb\n✔️ DSLR Tripod: https://amzn.to/3xEcxTS\n✔️ RGB Video Light: https://amzn.to/3LkKZWJ\n✔️ Selfie Stick Tripod: https://amzn.to/3LfwOST\n\n🚌 VAN LIFE BASICS 🚌\n✔️ Camping Chair: https://amzn.to/3VWGgiP\n✔️ GetOutGear Down Blanket: https://amzn.to/3quz2mv\n✔️ Coleman 20-40 degree sleeping bag: https://amzn.to/3BXtDtA\n✔️ Pillow Covers: https://amzn.to/32sgV8H\n✔️ Spill proof Urinal: https://amzn.to/3eoxy7N\n\n🚌 VAN LIFE CLEANING ESSENTIALS 🚌\n✔️ Cordless USB Vacuum: https://amzn.to/3z0sCPQ\n✔️ QuickDry Microfiber towel: https://amzn.to/3S0e9yb\n✔️ Ivation Portable Shower: https://amzn.to/30YIpC2\n✔️ Cup Holder Trash Bin: https://amzn.to/3quada6\n\n🚌 VAN LIFE ELECTRONICS 🚌\n✔️ Chinese Diesel Heater: https://amzn.to/3VZVJyN\n✔️ 12v USB-C Adapter: https://amzn.to/3W0Jvpo\n✔️ Rechargeable Puck Lights: https://amzn.to/46f0GIN\n✔️ Govee Temp/Humidity Monitor: https://amzn.to/3Hf3JTu\n✔️ LED Vanity Mirror: https://amzn.to/3z0ZasP\n✔️ Remote Control Fan: https://amzn.to/3pwt5WZ\n✔️ JBL Flip 6 BT Speaker: https://amzn.to/45XhoMl\n\n🚌 VAN LIFE FIRST AID ESSENTIALS 🚌\n✔️ First Aid Kit: https://amzn.to/3Ew2CwX\n✔️ Carbon Minoxide Detector: https://amzn.to/3esFAMF\n✔️ Fire Extinguisher: https://amzn.to/3EovDKU\n\n🚌 VAN LIFE KITCHEN ESSENTIALS 🚌\n✔️ Coleman Folding Table: https://amzn.to/3Ew91rZ\n✔️ Collapsible Colander: https://amzn.to/3RWGup1\n✔️ 10’ Spatula: https://amzn.to/3etA909\n✔️ GSI Outdoors Cooking Pot: https://amzn.to/3z094Lm\n✔️ GSI Outdoors Frypan: https://amzn.to/3FusCde\n✔️ Pyrex Glass Container: https://amzn.to/32vsrjj\n✔️ Hotlogic Mini Oven: https://amzn.to/3yXIUJj\n✔️ Paper Towel Holder: https://amzn.to/4ePNOg1\n✔️ 3 in 1 Utensil Set: https://amzn.to/3FHEXuA\n✔️ Dash Egg Cooker: https://amzn.to/3FADAOr\n✔️ Stainless Steel Plates: https://amzn.to/4eSSCBd\n✔️ Insulated Coffee Mug: https://amzn.to/3EwAucO\n✔️ Collapsible Food Containers: https://amzn.to/32pNyE1\n✔️ JetBoil: https://amzn.to/3WeTWH8\n\n🚌 VAN LIFE PET ESSENTIALS 🚌\n✔️ Dog Bowl Mat: https://amzn.to/30ZnU8m\n✔️ Dog Mat Bed: https://amzn.to/3z1YzYb\n✔️ Collapsable Dog Bowl: https://amzn.to/3VVu2Hm\n✔️ Splash Proof Dog Water Bowl: https://amzn.to/3sGfrCF\n✔️ Food Container set: https://amzn.to/3z00MmI\n\nDISCLAIMER: If you purchase a product or service with the links that I provide, I may receive a small commission. However, there is no additional charge to you. Thanks for the support!", "This is Why I Quit Van Life (it's been a total disaster!)", "72d6d44c-0a21-4ba2-a9c0-ca5fce9ffce0", 10, [], 502, false, "i9ANdxrcBR0", "https://www.youtube.com/watch?v=i9ANdxrcBR0", 57, "/downloads/Vanlife/2022-07-13 This is Why I Quit Van Life (it's been a total disaster!)/This is Why I Quit Van Life (it's been a total disaster!) [i9ANdxrcBR0].mp4", false, false, false, 1, ~U[2022-07-13 21:04:25Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Sorry for the long absence but I have quit van life and this is the story behind why I stopped posting YouTube videos and why I prematurely quit even though my plan was to travel for an entire year. Thanks for being a fan and thank you for sticking around! Rambo and I love you all!\n\n🎦 LOOKING FOR A MENTOR? 🎦\nI’ll be your Amazon Mentor: https://www.fiverr.com/s/bdYQ5vP\nI’ll be your YouTube Mentor: https://www.fiverr.com/s/pdBKjeY\n\n⭐ WAYS TO SUPPORT ME (IF YOU WANT) ⭐\n-Buy a Super Thanks\n-Donate via PayPal: https://tinyurl.com/Thank-You-Will\n-Buy me a coffee: https://buymeacoffee.com/petrohead\n\n🎬 MY CAMERA GEAR 🎬\n✔️ Sony ZV-1 camera: https://amzn.to/3xGLRlp\n✔️ Collapsible geen screen: https://amzn.to/45ZzEVx\n✔️ LED Video Lighting Kit: https://amzn.to/4cUf5vP\n✔️ Photography lighting umbrella kit: https://amzn.to/4cE3hy7\n✔️ Teleprompter: https://amzn.to/3S0ddKb\n✔️ DSLR Tripod: https://amzn.to/3xEcxTS\n✔️ RGB Video Light: https://amzn.to/3LkKZWJ\n✔️ Selfie Stick Tripod: https://amzn.to/3LfwOST\n\n🚌 VAN LIFE BASICS 🚌\n✔️ Camping Chair: https://amzn.to/3VWGgiP\n✔️ GetOutGear Down Blanket: https://amzn.to/3quz2mv\n✔️ Coleman 20-40 degree sleeping bag: https://amzn.to/3BXtDtA\n✔️ Pillow Covers: https://amzn.to/32sgV8H\n✔️ Spill proof Urinal: https://amzn.to/3eoxy7N\n\n🚌 VAN LIFE CLEANING ESSENTIALS 🚌\n✔️ Cordless USB Vacuum: https://amzn.to/3z0sCPQ\n✔️ QuickDry Microfiber towel: https://amzn.to/3S0e9yb\n✔️ Ivation Portable Shower: https://amzn.to/30YIpC2\n✔️ Cup Holder Trash Bin: https://amzn.to/3quada6\n\n🚌 VAN LIFE ELECTRONICS 🚌\n✔️ Chinese Diesel Heater: https://amzn.to/3VZVJyN\n✔️ 12v USB-C Adapter: https://amzn.to/3W0Jvpo\n✔️ Rechargeable Puck Lights: https://amzn.to/46f0GIN\n✔️ Govee Temp/Humidity Monitor: https://amzn.to/3Hf3JTu\n✔️ LED Vanity Mirror: https://amzn.to/3z0ZasP\n✔️ Remote Control Fan: https://amzn.to/3pwt5WZ\n✔️ JBL Flip 6 BT Speaker: https://amzn.to/45XhoMl\n\n🚌 VAN LIFE FIRST AID ESSENTIALS 🚌\n✔️ First Aid Kit: https://amzn.to/3Ew2CwX\n✔️ Carbon Minoxide Detector: https://amzn.to/3esFAMF\n✔️ Fire Extinguisher: https://amzn.to/3EovDKU\n\n🚌 VAN LIFE KITCHEN ESSENTIALS 🚌\n✔️ Coleman Folding Table: https://amzn.to/3Ew91rZ\n✔️ Collapsible Colander: https://amzn.to/3RWGup1\n✔️ 10’ Spatula: https://amzn.to/3etA909\n✔️ GSI Outdoors Cooking Pot: https://amzn.to/3z094Lm\n✔️ GSI Outdoors Frypan: https://amzn.to/3FusCde\n✔️ Pyrex Glass Container: https://amzn.to/32vsrjj\n✔️ Hotlogic Mini Oven: https://amzn.to/3yXIUJj\n✔️ Paper Towel Holder: https://amzn.to/4ePNOg1\n✔️ 3 in 1 Utensil Set: https://amzn.to/3FHEXuA\n✔️ Dash Egg Cooker: https://amzn.to/3FADAOr\n✔️ Stainless Steel Plates: https://amzn.to/4eSSCBd\n✔️ Insulated Coffee Mug: https://amzn.to/3EwAucO\n✔️ Collapsible Food Containers: https://amzn.to/32pNyE1\n✔️ JetBoil: https://amzn.to/3WeTWH8\n\n🚌 VAN LIFE PET ESSENTIALS 🚌\n✔️ Dog Bowl Mat: https://amzn.to/30ZnU8m\n✔️ Dog Mat Bed: https://amzn.to/3z1YzYb\n✔️ Collapsable Dog Bowl: https://amzn.to/3VVu2Hm\n✔️ Splash Proof Dog Water Bowl: https://amzn.to/3sGfrCF\n✔️ Food Container set: https://amzn.to/3z00MmI\n\nDISCLAIMER: If you purchase a product or service with the links that I provide, (truncated) 11:05:34.082 [debug] QUERY OK source="sources" db=0.2ms idle=19.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.082 [debug] QUERY OK source="media_items" db=0.3ms idle=18.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-17 18:26:13Z], 10] 11:05:34.090 [debug] QUERY OK source="media_items" db=6.8ms idle=18.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The dream of converting an old van into a luxurious camper has inspired countless travel enthusiasts. Whether it’s a passion for adventure or the desire to build something truly unique, the possibilities are endless. With a budget of $5000, this incredible transformation showcases how creativity and skill can turn a simple Volkswagen Crafter into a stunning home on wheels.\n\nThe concept of campervans has evolved since the early 20th century, with iconic models like the Volkswagen Type 2 setting the standard. Today, @murattuncer pushes the boundaries of design and functionality, crafting campervans that redefine mobile living. This fully customized VW Crafter is a testament to his expertise and vision.\n\nIf you’re considering buying a camper, building one yourself, or commissioning a custom design, this project will inspire you to take the leap. For those seeking professional help, Murat Tuncer offers remarkable solutions tailored to your needs. Don’t hesitate to reach out to him and explore the endless possibilities for your campervan dreams!\n\n#AdventureReady #CamperBuild #CustomCamper #VanConversionJourney #HomeOnWheels\n\nMURAT TUNCER\nInstagram: / murattuncerrr\nInstagram2: / mtcabinlife\nYouTube: / @murattuncer\nContact: murattuncer325@gmail.com\n\nDisclaimer: This video is not affiliated with any brands or products showcased. All trademarks belong to their respective owners.\n\n#CamperVanConversion #VanLife #MuratTuncer #VWCamper #diyvanbuild", "Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife", "61b4eb47-c86e-43cc-b694-e48009c4cd2a", 10, [], 1748, false, "6QfHXlf-urQ", "https://www.youtube.com/watch?v=6QfHXlf-urQ", 58, "/downloads/Vanlife/2024-11-17 Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife/Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife [6QfHXlf-urQ].mkv", false, false, false, 1, ~U[2024-11-17 18:26:13Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The dream of converting an old van into a luxurious camper has inspired countless travel enthusiasts. Whether it’s a passion for adventure or the desire to build something truly unique, the possibilities are endless. With a budget of $5000, this incredible transformation showcases how creativity and skill can turn a simple Volkswagen Crafter into a stunning home on wheels.\n\nThe concept of campervans has evolved since the early 20th century, with iconic models like the Volkswagen Type 2 setting the standard. Today, @murattuncer pushes the boundaries of design and functionality, crafting campervans that redefine mobile living. This fully customized VW Crafter is a testament to his expertise and vision.\n\nIf you’re considering buying a camper, building one yourself, or commissioning a custom design, this project will inspire you to take the leap. For those seeking professional help, Murat Tuncer offers remarkable solutions tailored to your needs. Don’t hesitate to reach out to him and explore the endless possibilities for your campervan dreams!\n\n#AdventureReady #CamperBuild #CustomCamper #VanConversionJourney #HomeOnWheels\n\nMURAT TUNCER\nInstagram: / murattuncerrr\nInstagram2: / mtcabinlife\nYouTube: / @murattuncer\nContact: murattuncer325@gmail.com\n\nDisclaimer: This video is not affiliated with any brands or products showcased. All trademarks belong to their respective owners.\n\n#CamperVanConversion #VanLife #MuratTuncer #VWCamper #diyvanbuild", "Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife", 10, 1748, false, "6QfHXlf-urQ", "https://www.youtube.com/watch?v=6QfHXlf-urQ", "/downloads/Vanlife/2024-11-17 Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife/Incredible $5000 Camper Van Conversion | Complete DIY Build by @murattuncer #vanlife [6QfHXlf-urQ].mkv", false, ~U[2024-11-17 18:26:13Z]] 11:05:34.090 [debug] QUERY OK source="sources" db=0.2ms idle=25.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.091 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-13 14:00:06Z], 10] 11:05:34.094 [debug] QUERY OK source="media_items" db=1.9ms idle=9.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Ultimate Airstream Van Tour - 7 Years Later, It's Still Going Strong\n\nThe \"Mega Airstream\" is back! Seven years ago, I gave you a tour of my 1997 Airstream B190 camper van, and that video went viral with over 5 million views. It also brought a lot of comments—some loving, and some filled with hate. They said it was a waste of money, that it would break down, and that I'd regret my choices.\n\nWell, this van is still here, doing better than ever. In this full, updated tour, I'm addressing all the comments and showing you every upgrade and feature that makes this classic rig a modern, self-contained adventure vehicle. From the Ford V10 engine and a custom UJoint 4x4 conversion to the massive Lithionics lithium battery bank that replaced the old generator, this van is built for purpose-driven travel. I'll show you why I don't need a black tank, why I don't use a campsite, and how this van has truly changed my life. Join me, Patrick Botticelli, as I take you on a detailed journey through the evolution of the Mega Airstream.\n\nCore Vehicle & Powertrain:\n1997 Airstream B190 camper van (Ford E-Series 350 extended chassis)\nFord V10 gas engine\nUJoint Off-Road 4x4 conversion\nDana 60 front axle and Fox shocks\n24-gallon shortened fuel tank (due to conversion)\n109,000 miles on the odometer\n\nExterior & Safety Features:\nOriginal faded paint with no rust (lived in Arizona)\nVantage Optics headlights and side lights\nRaptor-lined hood with added vents\nCustom Raptor-looking front grill\nFront camera for safety\nAluminess front and rear bumpers\nAluminess swing-arm spare tire carrier\nPelican case storage box mounted on the rear\nBright LED tail lights and backup lights\nHitch receiver for towing (up to 5,000 lbs)\nOneUp bike rack\nAir suspension in the rear with manual inflation valves\n\nInterior & Living Features:\nCustom oak and poplar interior\nRemovable and reconfigurable main bed that converts to a double bed\nSecondary upper loft bed with privacy curtains and insect screens\nSwivel front passenger seat\nRenovated kitchen area with double sink, propane cooktop, and oven\nNovaKool 12V compressor fridge (replaces old propane fridge)\nEnclosed bathroom with a porcelain black tank toilet and bidet\nShower with new faucet and rain shower-style head\nFull-height roof with ability to stand inside\n\nTechnical & Electrical Systems:\n3 Lithionics lithium batteries (12,000 watt-hours of power)\nVictron Multiplus 3000-watt inverter\nZamp Solar power (320 watts)\nVictron smart dongle for monitoring\nARB dual compressor for airing up tires\nHoughton 9800 BTU air conditioner\nPropane furnace (18,000 BTU)\n6-gallon DSI gas water heater\n7-gallon black tank and 11-gallon gray tank\n18-gallon heated freshwater tank\n4G internet with a WeBoost antenna\nGarmin RV GPS for custom routing\nS-pod for managing exterior lights\nNest Cam for security\n\n#vanlife #airstream #4x4van #rvlife \n\nChapter Selections\n0:00 - Intro & The Viral Video Story\n1:09 - Why This Van Changed My Life\n1:51 - Airstream B190 History & Ford V10\n2:35 - Addressing the Haters: Awnings, Black Tanks, & Longevity\n3:36 - Exterior Tour: Upgrades & Wear and Tear\n5:31 - The UJoint 4x4 Conversion\n6:37 - Upgrades Under the Hood & Exterior Lights\n7:54 - Safety & Tech: Column Lock, Internet, & RV GPS\n9:12 - The Generator Delete & The New Lithium Battery System\n10:29 - Gear Storage & ARB Air Compressor\n11:32 - Kitchen & Roof System Upgrades\n12:19 - The Rooftop Systems: A/C, Solar, & Vents\n14:55 - The Rear Bumper & Pelican Case Storage\n16:09 - The Rear Compartment: Storage & Outside Shower\n18:19 - Bike Rack & Rear Safety Features\n22:00 - Welcome Inside the Mega Airstream\n23:05 - Swivel Chair & The Fuse Panel Controversy\n24:00 - The Upper Loft Bed & Privacy\n26:08 - The Main Bed Conversion\n29:05 - The Kitchen: Counter Space & Appliances\n32:00 - Inside Storage & Organization\n34:52 - The Bathroom: Toilet, Shower, & Privacy\n37:59 - Tank Monitoring & Final Thoughts\n\nThey Said My Van Was a Waste of Money... 7 Years Later, It's Still a Beast.\nThe Van They HATED is BACK! 🚐 My Mega Airstream Tour, 7 Years Later.\nThe Van That Got 5 Million Vi" <> ..., "The Van That Shook the Internet 7 Years Ago... It's Back and Better! MEGA Airstream B190 VanLife", "846e3a00-9bc8-4c92-a815-99bedab0e748", 10, [], 2352, false, "fihAll0pfa0", "https://www.youtube.com/watch?v=fihAll0pfa0", 60, "/downloads/Vanlife/2025-09-13 The Van That Shook the Internet 7 Years Ago... It's Back and Better! MEGA Airstream B190 VanLife/The Van That Shook the Internet 7 Years Ago... It's Back and Better! MEGA Airstream B190 VanLife [fihAll0pfa0].mp4", false, false, false, 1, ~U[2025-09-13 14:00:06Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The Ultimate Airstream Van Tour - 7 Years Later, It's Still Going Strong\n\nThe \"Mega Airstream\" is back! Seven years ago, I gave you a tour of my 1997 Airstream B190 camper van, and that video went viral with over 5 million views. It also brought a lot of comments—some loving, and some filled with hate. They said it was a waste of money, that it would break down, and that I'd regret my choices.\n\nWell, this van is still here, doing better than ever. In this full, updated tour, I'm addressing all the comments and showing you every upgrade and feature that makes this classic rig a modern, self-contained adventure vehicle. From the Ford V10 engine and a custom UJoint 4x4 conversion to the massive Lithionics lithium battery bank that replaced the old generator, this van is built for purpose-driven travel. I'll show you why I don't need a black tank, why I don't use a campsite, and how this van has truly changed my life. Join me, Patrick Botticelli, as I take you on a detailed journey through the evolution of the Mega Airstream.\n\nCore Vehicle & Powertrain:\n1997 Airstream B190 camper van (Ford E-Series 350 extended chassis)\nFord V10 gas engine\nUJoint Off-Road 4x4 conversion\nDana 60 front axle and Fox shocks\n24-gallon shortened fuel tank (due to conversion)\n109,000 miles on the odometer\n\nExterior & Safety Features:\nOriginal faded paint with no rust (lived in Arizona)\nVantage Optics headlights and side lights\nRaptor-lined hood with added vents\nCustom Raptor-looking front grill\nFront camera for safety\nAluminess front and rear bumpers\nAluminess swing-arm spare tire carrier\nPelican case storage box mounted on the rear\nBright LED tail lights and backup lights\nHitch receiver for towing (up to 5,000 lbs)\nOneUp bike rack\nAir suspension in the rear with manual inflation valves\n\nInterior & Living Features:\nCustom oak and poplar interior\nRemovable and reconfigurable main bed that converts to a double bed\nSecondary upper loft bed with privacy curtains and insect screens\nSwivel front passenger seat\nRenovated kitchen area with double sink, propane cooktop, and oven\nNovaKool 12V compressor fridge (replaces old propane fridge)\nEnclosed bathroom with a porcelain black tank toilet and bidet\nShower with new faucet and rain shower-style head\nFull-height roof with ability to stand inside\n\nTechnical & Electrical Systems:\n3 Lithionics lithium batteries (12,000 watt-hours of power)\nVictron Multiplus 3000-watt inverter\nZamp Solar power (320 watts)\nVictron smart dongle for monitoring\nARB dual compressor for airing up tires\nHoughton 9800 BTU air condition (truncated) 11:05:34.095 [debug] QUERY OK source="sources" db=0.3ms idle=11.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.095 [debug] QUERY OK source="media_items" db=0.5ms idle=5.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-13 17:00:46Z], 10] 11:05:34.098 [debug] QUERY OK source="media_items" db=1.8ms idle=5.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join us for a detailed van tour of this amazing campervan, showcasing its unique and flexible design. This van conversion is a fantastic example of comfortable van life, perfect for anyone considering a new van build. It truly embraces off grid living with its innovative features.\n\nhttps://www.limitlessvan.com/\n\nThis build blends premium materials, modern design, durability, and serious off-grid capability with a layout focused heavily on cooking and outdoor living. In the rear, you’ll find a full slide-out chef’s station with two different BBQ options, exterior storage, and a clean, organized gear layout for adventure travel.\n\nIn this video I cover:\n• The 3-point articulating bed system (first time I’ve seen one)\n• Full Limitless Van interior tour\n• Premium cabinetry, modern finishes, & smart storage\n• Dual outdoor BBQ slide-out cooking system\n• Off-grid systems & adventure-ready exterior\n• Why this company is quickly becoming a top-tier luxury van builder\n\nLimitless Van continues to push design and engineering forward, and this build is another example of how far the industry has come. If luxury adventure rigs and high-end craftsmanship are your thing, you’re going to love this tour.\n\n🔗 MY FAVORITE GEAR & PARTNER DISCOUNTS\nThese are products I personally use and love. Some links are affiliate links — using them helps support the channel at no extra cost to you. 🙏\n🛏 Roam Rest MattressesUse code jarrodtocci10 at checkout ➜ https://roamrest.com\n🔋 BigBattery.com – Off-Grid BatteriesSave with code TOCCI10 ➜ https://bigbattery.com/?ref=230\n🚐 Van Life Accessories – Hand-picked gear for life on the road\n➜ https://the-wanderful.kckb.me/jarrodtocci\n🔆 Sunflare Solar – Flexible, walkable solar panels\n10% off + Free Shipping with code Jarrod10\nOverland & rooftop tents ➜ https://www.sunflarexplor.com\nTiny homes & residential ➜ https://www.sunflarearray.com\n🚽 CompoCloset Composting Toilets\nSmell-free, easy to use\nStandard ➜ https://compocloset.com/?ref=2meJcc2Cz6jLa\nS1 Sealer ➜ https://compocloset.com/pages/compocloset-s1-sealer?currency=USD\n🧊 ICECO Portable Fridges & Freezers12% off with code JARRODTOCCI ➜ https://icecofreezer.com/JarrodTocci\n⚡️ RV Solar & Electrical Systems by RV ConnectionsGet your off-grid system set up ➜ https://rvsolarconnections.com/ref/1063/Use code JARRODT5 for a discount!\n🚙 Super Pacific X1 & Cloud Cap CampersMention “Jarrod Tocci” at checkout for $250 off accessories ➜ https://superpacificusa.com\n🪵 TotalBoat Epoxy & Wood FinishesGreat for DIY and woodworking projects ➜ https://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n🧰 Zarges – Rugged Aluminum Hard Cases\nPerfect for overlanding & gear storage ➜ Zarges\n🐑 Havelock Wool Insulation\nAll-natural, sustainable ➜ http://havelockwool.refr.cc/jarrodt\n🏝 Sandy Vans – 10% off select van upgrades\nUse code JARROD10 at checkout\n➜ https://sandyvans.com/JARROD10\nEligible products: Boost Box, SV Sandbar Roof Rack [2008+], Side Ladder, Starboard/Port Racks, Side Steps, Spare Tire Rack, Boost Box Mini, Stern Rear Step, Headliner Shelf\n🪵 Solid Wood Worx – $100 off PreCut Kits for overlanding vehicles\nUse code JARROD100 at checkout\n➜ https://solidwoodworx.com/JARROD100", "INSANE 3-Point Articulating Bed System — Full Luxury Van Tour", "b6d22a8e-baa9-44dc-853e-ec1cde48e32c", 10, [], 2270, false, "Q8p0KIKw6Rs", "https://www.youtube.com/watch?v=Q8p0KIKw6Rs", 61, "/downloads/Vanlife/2025-11-13 INSANE 3-Point Articulating Bed System — Full Luxury Van Tour/INSANE 3-Point Articulating Bed System — Full Luxury Van Tour [Q8p0KIKw6Rs].mkv", false, false, false, 1, ~U[2025-11-13 17:00:46Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Join us for a detailed van tour of this amazing campervan, showcasing its unique and flexible design. This van conversion is a fantastic example of comfortable van life, perfect for anyone considering a new van build. It truly embraces off grid living with its innovative features.\n\nhttps://www.limitlessvan.com/\n\nThis build blends premium materials, modern design, durability, and serious off-grid capability with a layout focused heavily on cooking and outdoor living. In the rear, you’ll find a full slide-out chef’s station with two different BBQ options, exterior storage, and a clean, organized gear layout for adventure travel.\n\nIn this video I cover:\n• The 3-point articulating bed system (first time I’ve seen one)\n• Full Limitless Van interior tour\n• Premium cabinetry, modern finishes, & smart storage\n• Dual outdoor BBQ slide-out cooking system\n• Off-grid systems & adventure-ready exterior\n• Why this company is quickly becoming a top-tier luxury van builder\n\nLimitless Van continues to push design and engineering forward, and this build is another example of how far the industry has come. If luxury adventure rigs and high-end craftsmanship are your thing, you’re going to love this tour.\n\n🔗 MY FAVORITE GEAR & PARTNER DISCOUNTS\nThese are products I personally use and love. Some links are affiliate links — using them helps support the channel at no extra cost to you. 🙏\n🛏 Roam Rest MattressesUse code jarrodtocci10 at checkout ➜ https://roamrest.com\n🔋 BigBattery.com – Off-Grid BatteriesSave with code TOCCI10 ➜ https://bigbattery.com/?ref=230\n🚐 Van Life Accessories – Hand-picked gear for life on the road\n➜ https://the-wanderful.kckb.me/jarrodtocci\n🔆 Sunflare Solar – Flexible, walkable solar panels\n10% off + Free Shipping with code Jarrod10\nOverland & rooftop tents ➜ https://www.sunflarexplor.com\nTiny homes & residential ➜ https://www.sunflarearray.com\n🚽 CompoCloset Composting Toilets\nSmell-free, easy to use\nStandard ➜ https://compocloset.com/?ref=2meJcc2Cz6jLa\nS1 Sealer ➜ https://compocloset.com/pages/compocloset-s1-sealer?currency=USD\n🧊 ICECO Portable Fridges & Freezers12% off with code JARRODTOCCI ➜ https://icecofreezer.com/JarrodTocci\n⚡️ RV Solar & Electrical Systems by RV ConnectionsGet your off-grid system set up ➜ https://rvsolarconnections.com/ref/1063/Use code JARRODT5 for a discount!\n🚙 Super Pacific X1 & Cloud Cap CampersMention “Jarrod Tocci” at checkout for $250 off accessories ➜ https://superpacificusa.com\n🪵 TotalBoat Epoxy & Wood FinishesGreat for DIY and woodworking projects ➜ https://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n🧰 Zarges – Rugged Aluminum Hard Cases\nPerfect for overlanding & gear storage ➜ Zarges\n🐑 Havelock Wool Insulation\nAll-natural, sustainable ➜ http://havelockwool.refr.cc/jarrodt\n🏝 Sandy Vans – 10% off select van upgrades\nUse code JARROD10 at checkout\n➜ https://sandyvans.com/JARROD10\nEligible products: Boost Box, SV Sandbar Roof Rack [2008+], Side Ladder, Starboard/Port Racks, Side Steps, Spare Tire Rack, Boost Box Mini, Stern Rear Step, Headliner Shelf\n🪵 Solid Wood Worx – $100 off PreCut Kits for overlanding vehicles\nUse code JARROD100 at checkout\n➜ https://solidwoodworx.com/JARROD100", "INSANE 3-Point Articulating Bed System — Full Luxury Van Tour", 10, 2270, false, "Q8p0KIKw6Rs", "https://www.youtube.com/watch?v=Q8p0KIKw6Rs", "/downloads/Vanlife/2025-11-13 INSANE 3-Point Articulating Bed System — Full Luxury Van Tour/INS (truncated) 11:05:34.099 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [10] 11:05:34.099 [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[2023-08-17 16:00:32Z], 10] 11:05:34.101 [debug] QUERY OK source="media_items" db=1.4ms idle=4.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This van build and design is one of a kind. They went all out and made a functional and beautiful van all on a Sprinter 170. Feels like a spa and the only thing I'm not happy about is I wasn't able to see it in person. Thank you to Kyle for doing a tour for me and being able to share with everyone on my channel. Everyone links below, including mine, enjoy!\n\nVideographer/Interview by:\n@kylecanady \nhttps://www.instagram.com/kyles.vanlife/\n\nEdden's Info:\nIG: https://www.instagram.com/eddenram/\n\nYOUTUBE: https://www.youtube.com/channel/UCQtcuKddjkp3R-J6WrxsmUw\n\nTIKTOK: https://www.tiktok.com/@nicoleandedden\n\nFACEBOOK: https://www.facebook.com/anandalivingexperiences/\n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nAmazon Store:\nhttps://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nLooking for great batteries? These are the batteries in my Van and Jeep AND now new TINY HOME!\nReLion Battery:\nhttp://relionbattery.com?aff=6\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products (used in 2nd van and new Tiny Home build):\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "Tulum Inspired Concrete Oasis DREAM Van Tour", "e27cd165-8ea3-4aad-8580-bbcda932963a", 10, [], 1676, false, "TeApFheOyhE", "https://www.youtube.com/watch?v=TeApFheOyhE", 62, "/downloads/Vanlife/2023-08-17 Tulum Inspired Concrete Oasis DREAM Van Tour/Tulum Inspired Concrete Oasis DREAM Van Tour [TeApFheOyhE].mp4", false, false, false, 1, ~U[2023-08-17 16:00:32Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "This van build and design is one of a kind. They went all out and made a functional and beautiful van all on a Sprinter 170. Feels like a spa and the only thing I'm not happy about is I wasn't able to see it in person. Thank you to Kyle for doing a tour for me and being able to share with everyone on my channel. Everyone links below, including mine, enjoy!\n\nVideographer/Interview by:\n@kylecanady \nhttps://www.instagram.com/kyles.vanlife/\n\nEdden's Info:\nIG: https://www.instagram.com/eddenram/\n\nYOUTUBE: https://www.youtube.com/channel/UCQtcuKddjkp3R-J6WrxsmUw\n\nTIKTOK: https://www.tiktok.com/@nicoleandedden\n\nFACEBOOK: https://www.facebook.com/anandalivingexperiences/\n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nAmazon Store:\nhttps://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nLooking for great batteries? These are the batteries in my Van and Jeep AND now new TINY HOME!\nReLion Battery:\nhttp://relionbattery.com?aff=6\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products (used in 2nd van and new Tiny Home build):\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "Tulum Inspired Concrete Oasis DREAM Van Tour", 10, 1676, false, "TeApFheOyhE", "https://www.youtube.com/watch?v=TeApFheOyhE", "/downloads/Vanlife/2023-08-17 Tulum Inspired Concrete Oasis DREAM Van Tour/Tulum Inspired Concrete Oasis DREAM Van Tour [TeApFheOyhE].mp4", false, ~U[2023-08-17 16:00:32Z]] 11:05:34.102 [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" = ?) [10] 11:05:34.102 [debug] QUERY OK source="media_items" db=0.3ms 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-11-15 23:52:22Z], 10] 11:05:34.103 [debug] QUERY OK source="media_items" db=0.7ms idle=3.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The world's first Lexus Lx 470 camper! Here's a walkaround of the finished product!\n\nBuilder - Henry Russo\nProducer - Jesse Colussy\nSound and Director - Zak K\n\nThe wing wall video -https://youtu.be/me5o7xnHQ_U?si=Rtkcf2fjIJlfbww3\n\nThe full build playlist - https://youtube.com/playlist?list=PLXA32UVmpI3cOPTUgCgTT1X9tDIYQD5qH&si=WY1M8kikUkyRm416\n\n\nSupport and Follow us!\nPatreon: https://www.patreon.com/itsdeza/membership\nMerch: https://itsdeza.bigcartel.com\nAmazon Store: https://www.amazon.com/shop/itsdeza\nFacebook: https://www.facebook.com/jcolussy/\nInstagram: https://www.instagram.com/jesse_itsdeza/\nEmail - jcolussy.inc@gmail.com\n\n\n\nIf you read this message me on Facebook and say hi \n\n*As an amazon affiliate, we may earn a small percentage*", "First Ever Lexus LX 470 Camper Walkaround", "afae1c23-fe0b-4c0f-a19c-1b37177b0d16", 10, [], 953, false, "PgpccBP809U", "https://www.youtube.com/watch?v=PgpccBP809U", 63, "/downloads/Vanlife/2025-11-15 First Ever Lexus LX 470 Camper Walkaround/First Ever Lexus LX 470 Camper Walkaround [PgpccBP809U].mkv", false, false, false, 1, ~U[2025-11-15 23:52:22Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The world's first Lexus Lx 470 camper! Here's a walkaround of the finished product!\n\nBuilder - Henry Russo\nProducer - Jesse Colussy\nSound and Director - Zak K\n\nThe wing wall video -https://youtu.be/me5o7xnHQ_U?si=Rtkcf2fjIJlfbww3\n\nThe full build playlist - https://youtube.com/playlist?list=PLXA32UVmpI3cOPTUgCgTT1X9tDIYQD5qH&si=WY1M8kikUkyRm416\n\n\nSupport and Follow us!\nPatreon: https://www.patreon.com/itsdeza/membership\nMerch: https://itsdeza.bigcartel.com\nAmazon Store: https://www.amazon.com/shop/itsdeza\nFacebook: https://www.facebook.com/jcolussy/\nInstagram: https://www.instagram.com/jesse_itsdeza/\nEmail - jcolussy.inc@gmail.com\n\n\n\nIf you read this message me on Facebook and say hi \n\n*As an amazon affiliate, we may earn a small percentage*", "First Ever Lexus LX 470 Camper Walkaround", 10, 953, false, "PgpccBP809U", "https://www.youtube.com/watch?v=PgpccBP809U", "/downloads/Vanlife/2025-11-15 First Ever Lexus LX 470 Camper Walkaround/First Ever Lexus LX 470 Camper Walkaround [PgpccBP809U].mkv", false, ~U[2025-11-15 23:52:22Z]] 11:05:34.104 [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" = ?) [10] 11:05:34.104 [debug] QUERY OK source="media_items" db=0.3ms idle=2.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-18 05:24:46Z], 10] 11:05:34.105 [debug] QUERY OK source="media_items" db=0.5ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The box truck is sold and has found a new home, thanks for watching hopefully it inspires your own adventures!", "Stealth Box Truck Tiny Home | Build Video | (Sold)", "a1813cc0-79c0-498a-90a3-1412df8b0909", 10, [], 291, false, "e-nxsPxbacI", "https://www.youtube.com/watch?v=e-nxsPxbacI", 64, "/downloads/Vanlife/2023-09-18 Stealth Box Truck Tiny Home | Build Video | (Sold)/Stealth Box Truck Tiny Home | Build Video | (Sold) [e-nxsPxbacI].mp4", false, false, false, 1, ~U[2023-09-18 05:24:46Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The box truck is sold and has found a new home, thanks for watching hopefully it inspires your own adventures!", "Stealth Box Truck Tiny Home | Build Video | (Sold)", 10, 291, false, "e-nxsPxbacI", "https://www.youtube.com/watch?v=e-nxsPxbacI", "/downloads/Vanlife/2023-09-18 Stealth Box Truck Tiny Home | Build Video | (Sold)/Stealth Box Truck Tiny Home | Build Video | (Sold) [e-nxsPxbacI].mp4", false, ~U[2023-09-18 05:24:46Z]] 11:05:34.106 [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" = ?) [10] 11:05:34.106 [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[2024-11-19 20:08:42Z], 10] 11:05:34.108 [debug] QUERY OK source="media_items" db=1.3ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#sprinter #promaster #transit #fords #gmc \n\nReady to hit the road but not sure which van type is right for you? Join Jonny and Brian at the Field Van Factory in Fresno as they guide you through all things camper vans! Whether you’re eyeing a Mercedes Sprinter for its tech features, a Ford Transit for its serviceability, or even the off-road king—the Ford Classic—this video breaks down what each model has to offer. We’ll walk you through each van’s specs, from seating to towing to where each model really shines. And like Brian says, “There is no perfect van for everybody, but there is a perfect van for you”. (1:06) \n\nNo matter your adventure, we’ve got options to fit your lifestyle and needs. From the popular Sprinter with tons of aftermarket options, to the rugged Ford Classic's off-road capability, learn what makes each van type unique and discover your perfect vehicle. Watch now, take notes, and get ready to start creating your adventure! \n\nField Van Chassis Models Covered:\n\nMercedes Sprinters // Available in multiple sizes and high-tech safety features 🚐\n\nRam ProMasters // Spacious interiors, lower maintenance costs, and great drivability 🛠️\n\nFord Transits // EcoBoost engine, all-wheel drive options, and factory-lifted Transit Trail 🌲\n\nGMC Chevy Classic // American vans with available 4x4 conversions 🔧\n\nFord Classics // The ultimate off-road van with custom 4x4 capabilities 💪\n\nReady to make a choice? Drop a comment if you have questions or visit us at FieldVan.com to explore more! And don’t forget to subscribe for more van guides and build tours.\n\nLearn more about Field Van and our builds on our website: https://fieldvan.com/\n\n🚨🚨Already own a van? Perfect, we also do conversions on most modern vans within model years back to 1997. 🚨🚨\n\n#vanlife #fieldvan #vanconversions #vanbuildseries #automobile \n\nSubscribe to our channel for more awesome van life content. \n\nSUBSCRIBE: @FieldVan\n—\nYOU MIGHT LIKE: \nhttps://youtu.be/-orAVchkXeA?si=tpp0tDvBac-bR1IA\nhttps://youtu.be/u4KTbjQoB14?si=4V6CZwW14FDgYEFE\n\n#Vanfeatures #Vandreams #Vangoals #VanTours #ChooseYourVan \n—\nWHO ARE WE?\n\nField Van is the premier choice for custom van conversions in Fresno, CA, and Reno, NV. Our team is passionate about the craftsmanship of building reliable, customized vans that let you create your own adventures on and off-trail. 🌲🚐\n—\nCONTACT US!\n\nFor collaborations or to share your field van in action, email us at info@fieldvan.com \n\nDon’t forget to subscribe to our channel!\n\nFollow us on our socials!\nInstagram: https://www.instagram.com/fieldvans/\nTwitter: https://twitter.com/fieldvan\nFacebook: https://www.facebook.com/Fieldvans", "Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE", "9145ae40-5c7a-4ad6-97c7-aef3850585aa", 10, [], 1112, false, "ysrwCdMX6fc", "https://www.youtube.com/watch?v=ysrwCdMX6fc", 65, "/downloads/Vanlife/2024-11-19 Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE/Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE [ysrwCdMX6fc].mp4", false, false, false, 1, ~U[2024-11-19 20:08:42Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "#sprinter #promaster #transit #fords #gmc \n\nReady to hit the road but not sure which van type is right for you? Join Jonny and Brian at the Field Van Factory in Fresno as they guide you through all things camper vans! Whether you’re eyeing a Mercedes Sprinter for its tech features, a Ford Transit for its serviceability, or even the off-road king—the Ford Classic—this video breaks down what each model has to offer. We’ll walk you through each van’s specs, from seating to towing to where each model really shines. And like Brian says, “There is no perfect van for everybody, but there is a perfect van for you”. (1:06) \n\nNo matter your adventure, we’ve got options to fit your lifestyle and needs. From the popular Sprinter with tons of aftermarket options, to the rugged Ford Classic's off-road capability, learn what makes each van type unique and discover your perfect vehicle. Watch now, take notes, and get ready to start creating your adventure! \n\nField Van Chassis Models Covered:\n\nMercedes Sprinters // Available in multiple sizes and high-tech safety features 🚐\n\nRam ProMasters // Spacious interiors, lower maintenance costs, and great drivability 🛠️\n\nFord Transits // EcoBoost engine, all-wheel drive options, and factory-lifted Transit Trail 🌲\n\nGMC Chevy Classic // American vans with available 4x4 conversions 🔧\n\nFord Classics // The ultimate off-road van with custom 4x4 capabilities 💪\n\nReady to make a choice? Drop a comment if you have questions or visit us at FieldVan.com to explore more! And don’t forget to subscribe for more van guides and build tours.\n\nLearn more about Field Van and our builds on our website: https://fieldvan.com/\n\n🚨🚨Already own a van? Perfect, we also do conversions on most modern vans within model years back to 1997. 🚨🚨\n\n#vanlife #fieldvan #vanconversions #vanbuildseries #automobile \n\nSubscribe to our channel for more awesome van life content. \n\nSUBSCRIBE: @FieldVan\n—\nYOU MIGHT LIKE: \nhttps://youtu.be/-orAVchkXeA?si=tpp0tDvBac-bR1IA\nhttps://youtu.be/u4KTbjQoB14?si=4V6CZwW14FDgYEFE\n\n#Vanfeatures #Vandreams #Vangoals #VanTours #ChooseYourVan \n—\nWHO ARE WE?\n\nField Van is the premier choice for custom van conversions in Fresno, CA, and Reno, NV. Our team is passionate about the craftsmanship of building reliable, customized vans that let you create your own adventures on and off-trail. 🌲🚐\n—\nCONTACT US!\n\nFor collaborations or to share your field van in action, email us at info@fieldvan.com \n\nDon’t forget to subscribe to our channel!\n\nFollow us on our socials!\nInstagram: https://www.instagram.com/fieldvans/\nTwitter: https://twitter.com/fieldvan\nFacebook: https://www.facebook.com/Fieldvans", "Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE", 10, 1112, false, "ysrwCdMX6fc", "https://www.youtube.com/watch?v=ysrwCdMX6fc", "/downloads/Vanlife/2024-11-19 Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE/Which VAN should YOU choose? | FIELD VAN CHASSIS GUIDE [ysrwCdMX6fc].mp4", false, ~U[2024-11-19 20:08:42Z]] 11:05:34.109 [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" = ?) [10] 11:05:34.109 [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-12-12 17:00:40Z], 10] 11:05:34.114 [debug] QUERY OK source="media_items" db=4.3ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I was not ready for this van tour because it is truly one of a kind. Shane went into detail getting to know his clients and went above and beyond with the attention to detail, not to mention some of the best parts and systems used in a van. Well done Shane!\n\nhttps://www.landshipcustoms.com/\n\nThank you to Kyle for filming and interviewing Shane. Make sure you check out Kyle's channel and see what he's building next.\n@ChopShopCrew \n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nWebsite: https://www.jarrodtocci.com\nMerch: https://jarrodtocci.com/store\nAmazon Store: https://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://www.youtube.com/channel/UCn9M1J4P_Ou3sMi0oym158Q\n\nLooking for Custom Van Build with company I work with:\nhttps://www.nomadikcustoms.com/\ninfo@nomadikcustoms.com\nThey also do all service work for vans:\nservice@nomadikcustoms.com\n\nBatteries: Big Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nGet off grid electrical at RV Connections:\nhttps://rvsolarconnections.com/ref/1063/\nCode: JARRODT5\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nLove HEST as my Camping Mattress:\nhttps://hest.com/\nDiscount Code: Stay Tuned as it’s Seasonal\n\nStanley for Camping Gear\nBlack Friday SALE: https://alnk.to/31s8T3J\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!\n\nTours Playlist:\nhttps://www.youtube.com/playlist?list=PLHrnevETejEMWv5kclacXhH6atb3ax6tl\nVlogs - Weekly - Building, Travel, Adventure:\nhttps://www.youtube.com/playlist?list=PLHrnevETejEMseRhXNwNjrs5BU7RLpvhg\nDIY Tiny Home Build - Start to Finish:\nhttps://www.youtube.com/watch?v=acXuMP6HWJs&list=PLHrnevETejEN1fXbXEbtc1EqTRAqi_2G1", "Is This the COOLEST Van Build You've Ever Seen?", "b1e4f33c-548c-4acb-bef3-ddea97e7ec3c", 10, [], 2016, false, "_sA4YC8QNL8", "https://www.youtube.com/watch?v=_sA4YC8QNL8", 66, "/downloads/Vanlife/2024-12-12 Is This the COOLEST Van Build You've Ever Seen?/Is This the COOLEST Van Build You've Ever Seen? [_sA4YC8QNL8].mkv", false, false, false, 1, ~U[2024-12-12 17:00:40Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "I was not ready for this van tour because it is truly one of a kind. Shane went into detail getting to know his clients and went above and beyond with the attention to detail, not to mention some of the best parts and systems used in a van. Well done Shane!\n\nhttps://www.landshipcustoms.com/\n\nThank you to Kyle for filming and interviewing Shane. Make sure you check out Kyle's channel and see what he's building next.\n@ChopShopCrew \n\n**My Information and Partnerships/Affiliates:**\nBrand Deals: jarrod.tocci@thestation.io\nBusiness Inquiries: info@jarrodtocci.com\nWebsite: https://www.jarrodtocci.com\nMerch: https://jarrodtocci.com/store\nAmazon Store: https://www.amazon.com/shop/jarrodtocci-g.h.o.s.t.\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://www.youtube.com/channel/UCn9M1J4P_Ou3sMi0oym158Q\n\nLooking for Custom Van Build with company I work with:\nhttps://www.nomadikcustoms.com/\ninfo@nomadikcustoms.com\nThey also do all service work for vans:\nservice@nomadikcustoms.com\n\nBatteries: Big Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nGet off grid electrical at RV Connections:\nhttps://rvsolarconnections.com/ref/1063/\nCode: JARRODT5\n\nEpoxy Used for Woodworking and any Finishing\nTotalBoat:\nhttps://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n\nLove HEST as my Camping Mattress:\nhttps://hest.com/\nDiscount Code: Stay Tuned as it’s Seasonal\n\nStanley for Camping Gear\nBlack Friday SALE: https://alnk.to/31s8T3J\n\nCompany I ordered Trailer for my Tiny Home AND Frame Kit:\nhttp://trailermadetrailers.com?utm_source=ghost&utm_medium=referral\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!\n\nTours Playlist:\nhttps://www.youtube.com/playlist?list=PLHrnevETejEMWv5kclacXhH6atb3ax6tl\nVlogs - Weekly - Building, Travel, Adventure:\nhttps://www.youtube.com/playlist?list=PLHrnevETejEMseRhXNwNjrs5BU7RLpvhg\nDIY Tiny Home Build - Start to Finish:\nhttps://www.youtube.com/watch?v=acXuMP6HWJs&list=PLHrnevETejEN1fXbXEbtc1EqTRAqi_2G1", "Is This the COOLEST Van Build You've Ever Seen?", 10, 2016, false, "_sA4YC8QNL8", "https://www.youtube.com/watch?v=_sA4YC8QNL8", "/downloads/Vanlife/2024-12-12 Is This the COOLEST Van Build You've Ever Seen?/Is This the COOLEST Van Build You've Ever Seen? [_sA4YC8QNL8].mkv", false, ~U[2024-12-12 17:00:40Z]] 11:05:34.114 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [10] 11:05:34.115 [debug] QUERY OK source="media_items" db=0.3ms idle=6.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-28 23:02:00Z], 10] 11:05:34.133 [debug] QUERY OK source="media_items" db=17.0ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Panda32kWh (affiliate links): https://www.docanpower.com/panda-52v-628ah-32kwh-assembled-pack-usa?tracking=FpVzRYFtgrS12z0RHrWmDLEOnMNfPFEhKUpja4A5onGyClxW3tGQADC6jRnxYrnG\n\nYixiang 32kWh: https://yixiangpower.com/products/pre-sale-yixiang-us-stock-eve-mb56-finished-battery-pack-32kwh-51-2v-16s-628ah-eve-lifepo4-cell-lithium-battery-estimated-shipping-date-dec-20th?sca_ref=9207522.jYuzmwEjUpH\n\n*Tired of getting ripped off? Check out my \"Will Prowse Approved\" solar product recommendations below!*\n\n*12V Batteries*\nhttps://www.mobile-solarpower.com/lithium-batteries.html\n\n*48V Batteries*\nhttps://www.mobile-solarpower.com/48v-batteries.html\n\n*Offgrid Inverter System Builder*\nhttps://www.mobile-solarpower.com/48v-complete-system-blueprint-559371.html\n\n*Hybrid Inverter System Builder*\nhttps://www.mobile-solarpower.com/code-compliant-48v-offgrid-system.html\n\n*Mobile Handtruck System Builder (very popular!)*\nhttps://www.mobile-solarpower.com/mobile-48v-system.html\n\n*Solar Panels*\nhttps://www.mobile-solarpower.com/300w-solar-panels.html\n\n*Ground Mount Solar Racking*\nhttps://www.mobile-solarpower.com/ground-mount-racks.html\n\n*Wire, Lugs and Busbars*\nhttps://www.mobile-solarpower.com/wire-and-connectors.html\n\n*Tools*\nhttps://www.mobile-solarpower.com/tools.html\n\n*Fuses and Circuit Breakers*\nhttps://www.mobile-solarpower.com/fuses.html\n\n*Plug-N-Play Solar Systems*\nEcoflow, Anker And Bluetti! So many models to choose from. See my current recommendations here:\nhttps://www.mobile-solarpower.com/full-size-systems.html\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Need to build a large DIY system? Need a trustworthy solar distributor? These are my favorites:*\n\n*Signature Solar*\nCreator of EG4! Solar Minisplits, Victron and More! Largest Solar Store Online.\nIf you want $50 off, please use my link below and coupon code \"DIYSOLAR50\":\nhttps://signaturesolar.com/?ref=cPwLcVc0SW-BjN\n\n*Current Connected*\nBest Prices for EG4, Victron, Midnite and so much more! Fast Shipping and Highest Rated Customer Service:\nhttps://currentconnected.com/?ref=wp\n\n0:00 Panda Time!\n1:26 Tear Down\n2:52 200A Charge And Interface\n4:02 Software Problems\n6:31 200A Load Test\n7:36 Strange SOC Problem\n8:03 Capacity Test\n8:24 Final Test\n8:51 Testing Internals\n10:33 Panda VS Yixiang\n12:05 Conclusion\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Join our DIY Solar Community* \nNeed more help? Join the largest solar forum on the internet for beginners and professionals alike. 140,000 members and counting!\nhttps://www.diysolarforum.com\n\n*Check Out My Free Book*\nBest-selling and beginner-friendly guidebook to off-grid 12V solar!\nhttps://www.mobile-solarpower.com/the-book.html\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Contact Information:*\nI am NOT available for personal solar system consult! If you wish to contact me, this is my direct email: williamprowsediysolar@gmail.com\n*FTC Disclosure Statement and Disclaimers:*\nEvery video includes paid promotion or sponsorship (such as free products for review). Some links on this YouTube channel may be affiliate links. We may get paid if you buy something or take an action after clicking one of these. My videos are for educational purposes only. Information is subject to change/update at any time. Electricity is DANGEROUS and can kill. Be smart and use common sense :) DIY Solar Power with Will Prowse is a participant in the Amazon Services LLC Associates Program, An affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com", "Docan Energy \"Panda\": 32kWh for $2,530!", "6f74e1dd-4d8f-4fde-ae86-66bec9d08482", 10, [], 837, false, "Uo5dimvOWgs", "https://www.youtube.com/watch?v=Uo5dimvOWgs", 67, "/downloads/Vanlife/2026-01-28 Docan Energy "Panda": 32kWh for $2,530!/Docan Energy "Panda": 32kWh for $2,530! [Uo5dimvOWgs].mkv", false, false, false, 1, ~U[2026-01-28 23:02:00Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Panda32kWh (affiliate links): https://www.docanpower.com/panda-52v-628ah-32kwh-assembled-pack-usa?tracking=FpVzRYFtgrS12z0RHrWmDLEOnMNfPFEhKUpja4A5onGyClxW3tGQADC6jRnxYrnG\n\nYixiang 32kWh: https://yixiangpower.com/products/pre-sale-yixiang-us-stock-eve-mb56-finished-battery-pack-32kwh-51-2v-16s-628ah-eve-lifepo4-cell-lithium-battery-estimated-shipping-date-dec-20th?sca_ref=9207522.jYuzmwEjUpH\n\n*Tired of getting ripped off? Check out my \"Will Prowse Approved\" solar product recommendations below!*\n\n*12V Batteries*\nhttps://www.mobile-solarpower.com/lithium-batteries.html\n\n*48V Batteries*\nhttps://www.mobile-solarpower.com/48v-batteries.html\n\n*Offgrid Inverter System Builder*\nhttps://www.mobile-solarpower.com/48v-complete-system-blueprint-559371.html\n\n*Hybrid Inverter System Builder*\nhttps://www.mobile-solarpower.com/code-compliant-48v-offgrid-system.html\n\n*Mobile Handtruck System Builder (very popular!)*\nhttps://www.mobile-solarpower.com/mobile-48v-system.html\n\n*Solar Panels*\nhttps://www.mobile-solarpower.com/300w-solar-panels.html\n\n*Ground Mount Solar Racking*\nhttps://www.mobile-solarpower.com/ground-mount-racks.html\n\n*Wire, Lugs and Busbars*\nhttps://www.mobile-solarpower.com/wire-and-connectors.html\n\n*Tools*\nhttps://www.mobile-solarpower.com/tools.html\n\n*Fuses and Circuit Breakers*\nhttps://www.mobile-solarpower.com/fuses.html\n\n*Plug-N-Play Solar Systems*\nEcoflow, Anker And Bluetti! So many models to choose from. See my current recommendations here:\nhttps://www.mobile-solarpower.com/full-size-systems.html\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Need to build a large DIY system? Need a trustworthy solar distributor? These are my favorites:*\n\n*Signature Solar*\nCreator of EG4! Solar Minisplits, Victron and More! Largest Solar Store Online.\nIf you want $50 off, please use my link below and coupon code \"DIYSOLAR50\":\nhttps://signaturesolar.com/?ref=cPwLcVc0SW-BjN\n\n*Current Connected*\nBest Prices for EG4, Victron, Midnite and so much more! Fast Shipping and Highest Rated Customer Service:\nhttps://currentconnected.com/?ref=wp\n\n0:00 Panda Time!\n1:26 Tear Down\n2:52 200A Charge And Interface\n4:02 Software Problems\n6:31 200A Load Test\n7:36 Strange SOC Problem\n8:03 Capacity Test\n8:24 Final Test\n8:51 Testing Internals\n10:33 Panda VS Yixiang\n12:05 Conclusion\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Join our DIY Solar Community* \nNeed more help? Join the largest solar forum on the internet for beginners and professionals alike. 140,000 members and counting!\nhttps://www.diysolarforum.com\n\n*Check Out My Free Book*\nBest-selling and beginner-friendly guidebook to off-grid 12V solar!\nhttps://www.mobile-solarpower.com/the-book.html\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n*Contact Information:*\nI am NOT available for personal solar system consult! If you wish to contact me, this is my direct email: williamprowsediysolar@gmail.com\n*FTC Disclosure Statement and Disclaimers:*\nEvery video includes paid promotion or sponsorship (such as free products for review). Some links on this YouTube channel may be affiliate links. We may get paid if you buy something or take an action after clicking one of these. My videos are for educational purposes only. Information is subject to change/update at any time. Electricity is DAN (truncated) 11:05:34.133 [debug] QUERY OK source="sources" db=0.2ms idle=23.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.134 [debug] QUERY OK source="media_items" db=0.4ms idle=19.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-13 14:01:11Z], 10] 11:05:34.135 [debug] QUERY OK source="media_items" db=1.2ms idle=19.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["EarthRoamer has long been a symbol of luxury and capability in terms of expedition vehicles. While that luxury of the Earthroamer can be quite expensive, there are some Earthroamer alternatives available in the expedition vehicles market. So, in this video, we'll showcase the 25 Earthroamer Alternatives You Can Consider, including some of the best expedition vehicles.\n\nEarthRoamer Alternatives List:\n\n00:00 - Introduction\n\n00:46 - Storyteller GXV HILT 2026 Model\n\n02:41 - 27North Trekker \n\n04:25 - Owl OTX RV\n\n06:16 - Wander Voyager Chevy Silverado 6500HD\n\n08:04 - Box Manufaktur Denali 720Q\n\n09:56 - Rossmonster Ford 550 Custom Build\n\n11:37 - ADV Mobil Ford F600 XLT\n\n13:24 - Jinghang RV F350\n\n14:52 - Tiger Adventure Vehicle Panthera\n\n16:34 - AT Overland Aterra\n\n18:30 - Accolade XT Unicat Achat\n\n20:09 - Alaskan Campers 850 FB\n\n21:47 - Rossmonster Havn\n\n23:37 - Entegra Coach \n\n25:31 - Wanderbox Outpost 35\n\n27:15 - Dynamax Europa\n\n29:05 - Loki Falcon X15\n\n30:38 - East To West Bravado\n\n32:19 - Dynamax Isata 5\n\n33:56 - Jayco Greyhawk XL\n\n35:48 - Supertramp Megatron \n\n37:05 - TruckHouse BCR \n\n38:25 - Krug Expedition Bedrock XT2\n\n39:40 - Adrenalin Industries AWOL\n-----------------------------------------------------------------------------------------------------------------\nBusiness mail: mailtrailingoffraod@gmail.com\n------------------------------------------------------------------------------------------------------------------\nMusic Source & Credit: YouTube Audio Library\n-----------------------------------------------------------------------------------------------------------------\nVideo you may also like:\n* https://youtu.be/Jl7nrj75MoA\n* https://youtu.be/XYXf2jipyUM\n* https://youtu.be/FM--WjXMiCg\n-----------------------------------------------------------------------------------------------------------------\n* 25 EarthRoamer Alternatives You Can Consider explores some of the most capable expedition vehicles and overlanding trucks for those who dream of going off-grid without the price tag of an EarthRoamer. Models like the EarthRoamer LTi, EarthRoamer LTx, and EarthRoamer SX are legendary, but several EarthRoamer alternatives deliver similar comfort and durability. From a rugged expedition truck to a well-equipped off road camper, these builds are made for serious overlanding and off-road adventures. You’ll also find impressive rigs from Global Expedition Vehicles, truck camper setups, and even converted van life builds that redefine mobility. Whether you’re eyeing a 4x4, 6x6, or full offroad RV, these expedition vehicle 4x4 options are built to handle it all. Our truck camper tour and converted van tour picks show the versatility of modern builds. Perfect for fans of off grid living, overland, and tiny house tour lifestyles, this guide showcases the best expedition and off-road trucks worth exploring.\n-----------------------------------------------------------------------------------------------------------------\nDisclaimer:\n* The following video abides by the YouTube Community Guideline. The footage used in this video is for educational purposes.\n* The footage used in this video follows the Fair Usage Policy “Under Section 107” of the “Copyright Act 1976”. If you have any copyright issues, please send us an email or let us know by commenting below.\n* Some of our content may contain affiliate links, from which we earn some commission, that support us in running this channel.\n\n#expedition #overlanding #4x4 #earthroamer", "25 Earthroamer Alternatives You Can Take Anywhere | Expedition Vehicles", "d473a28a-a648-4501-b20a-1af666b4ac38", 10, [], 2591, false, "boFEGpr84WI", "https://www.youtube.com/watch?v=boFEGpr84WI", 68, "/downloads/Vanlife/2026-01-13 25 Earthroamer Alternatives You Can Take Anywhere | Expedition Vehicles/25 Earthroamer Alternatives You Can Take Anywhere | Expedition Vehicles [boFEGpr84WI].mkv", false, false, false, 1, ~U[2026-01-13 14:01:11Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "EarthRoamer has long been a symbol of luxury and capability in terms of expedition vehicles. While that luxury of the Earthroamer can be quite expensive, there are some Earthroamer alternatives available in the expedition vehicles market. So, in this video, we'll showcase the 25 Earthroamer Alternatives You Can Consider, including some of the best expedition vehicles.\n\nEarthRoamer Alternatives List:\n\n00:00 - Introduction\n\n00:46 - Storyteller GXV HILT 2026 Model\n\n02:41 - 27North Trekker \n\n04:25 - Owl OTX RV\n\n06:16 - Wander Voyager Chevy Silverado 6500HD\n\n08:04 - Box Manufaktur Denali 720Q\n\n09:56 - Rossmonster Ford 550 Custom Build\n\n11:37 - ADV Mobil Ford F600 XLT\n\n13:24 - Jinghang RV F350\n\n14:52 - Tiger Adventure Vehicle Panthera\n\n16:34 - AT Overland Aterra\n\n18:30 - Accolade XT Unicat Achat\n\n20:09 - Alaskan Campers 850 FB\n\n21:47 - Rossmonster Havn\n\n23:37 - Entegra Coach \n\n25:31 - Wanderbox Outpost 35\n\n27:15 - Dynamax Europa\n\n29:05 - Loki Falcon X15\n\n30:38 - East To West Bravado\n\n32:19 - Dynamax Isata 5\n\n33:56 - Jayco Greyhawk XL\n\n35:48 - Supertramp Megatron \n\n37:05 - TruckHouse BCR \n\n38:25 - Krug Expedition Bedrock XT2\n\n39:40 - Adrenalin Industries AWOL\n-----------------------------------------------------------------------------------------------------------------\nBusiness mail: mailtrailingoffraod@gmail.com\n------------------------------------------------------------------------------------------------------------------\nMusic Source & Credit: YouTube Audio Library\n-----------------------------------------------------------------------------------------------------------------\nVideo you may also like:\n* https://youtu.be/Jl7nrj75MoA\n* https://youtu.be/XYXf2jipyUM\n* https://youtu.be/FM--WjXMiCg\n-----------------------------------------------------------------------------------------------------------------\n* 25 EarthRoamer Alternatives You Can Consider explores some of the most capable expedition vehicles and overlanding trucks for those who dream of going off-grid without the price tag of an EarthRoamer. Models like the EarthRoamer LTi, EarthRoamer LTx, and EarthRoamer SX are legendary, but several EarthRoamer alternatives deliver similar comfort and durability. From a rugged expedition truck to a well-equipped off road camper, these builds are made for serious overlanding and off-road adventures. You’ll also find impressive rigs from Global Expedition Vehicles, truck camper setups, and even converted van life builds that redefine mobility. Whether you’re eyeing a 4x4, 6x6, or full offroad RV, these expedition vehicle 4x4 options are built to handle it all. Our truck camper tour and converted van tour picks show the versatility of modern builds. Perfect for fans of off grid living, overland, and tiny house tour lifestyles, this guide showcases the best expedition and off-road trucks worth exploring.\n-----------------------------------------------------------------------------------------------------------------\nDisclaimer:\n* The following video abides by the YouTube Community Guideline. The footage used in this video is for educational purposes.\n* The footage used in this video follows the Fair Usage Policy “Under Section 107” of the “Copyright Act 1976”. If you have any copyright (truncated) 11:05:34.136 [debug] QUERY OK source="sources" db=0.2ms idle=20.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.136 [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-12-03 23:07:24Z], 10] 11:05:34.138 [debug] QUERY OK source="media_items" db=1.0ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Thor is hitting the road for a full month in his brand-new Rossmönster Baja Plus, and today he’s giving you an in-depth walkthrough of how this rig is packed, organized, and dialed for long-term travel across the country. If you’ve ever wondered what it looks like to live out of a premium overland expedition vehicle for weeks at a time, this is the most detailed tour yet.\n\nIn this video, Thor breaks down every part of his Baja Plus camper, including the upgraded suspension, off-grid electrical system, interior layout, gear organization, exterior storage, water setup, bed configuration, and the small-but-mighty features that make the Baja Plus one of the most capable road trip rigs on the market. This is the real, ready-to-roll setup — nothing staged, just a fully loaded Baja Plus ready for a month of van life.\n\nWhether you’re researching your own Sprinter or truck build, exploring the world of overlanding, or dreaming up your next off-grid adventure, this walkthrough gives you a candid look at how a professional builder outfits their personal rig for life on the road.\n\nWhat you’ll see in this walkthrough:\n\n• Full tour of Thor’s new Rossmönster Baja Plus\n• Real-world storage and packing for a month-long trip\n• Kitchen, water, and cooking systems\n• Bed and interior layout for long-term comfort\n• Off-grid power system overview\n• Exterior storage, suspension, and recovery gear\n• Lighting, heating, insulation, and cold-weather prep\n• Behind-the-scenes look at how Rossmönster rigs are used by the people who build them\n\nRossmonster, Rossmönster, Baja Plus, Baja truck camper, Sprinter overland build, van life tour, van build tour, off grid camper, expedition vehicle, overlanding setup, adventure rig, camper van walkthrough, 4x4 Sprinter camper, off-road camper tour, van life setup, best overland vehicles, month-long van trip, overland truck camper, off-road RV, modern overland rig, camper packing tips, real-world van life, full-time vanlife setup, premium van conversion.", "The Baja Plus is packed for a month-long trip.", "ee98286b-e7d7-411a-b0a9-05a4f64a66c1", 10, [], 907, false, "GKHBXkXh81k", "https://www.youtube.com/watch?v=GKHBXkXh81k", 69, "/downloads/Vanlife/2025-12-03 The Baja Plus is packed for a month-long trip#/The Baja Plus is packed for a month-long trip. [GKHBXkXh81k].mkv", false, false, false, 1, ~U[2025-12-03 23:07:24Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Thor is hitting the road for a full month in his brand-new Rossmönster Baja Plus, and today he’s giving you an in-depth walkthrough of how this rig is packed, organized, and dialed for long-term travel across the country. If you’ve ever wondered what it looks like to live out of a premium overland expedition vehicle for weeks at a time, this is the most detailed tour yet.\n\nIn this video, Thor breaks down every part of his Baja Plus camper, including the upgraded suspension, off-grid electrical system, interior layout, gear organization, exterior storage, water setup, bed configuration, and the small-but-mighty features that make the Baja Plus one of the most capable road trip rigs on the market. This is the real, ready-to-roll setup — nothing staged, just a fully loaded Baja Plus ready for a month of van life.\n\nWhether you’re researching your own Sprinter or truck build, exploring the world of overlanding, or dreaming up your next off-grid adventure, this walkthrough gives you a candid look at how a professional builder outfits their personal rig for life on the road.\n\nWhat you’ll see in this walkthrough:\n\n• Full tour of Thor’s new Rossmönster Baja Plus\n• Real-world storage and packing for a month-long trip\n• Kitchen, water, and cooking systems\n• Bed and interior layout for long-term comfort\n• Off-grid power system overview\n• Exterior storage, suspension, and recovery gear\n• Lighting, heating, insulation, and cold-weather prep\n• Behind-the-scenes look at how Rossmönster rigs are used by the people who build them\n\nRossmonster, Rossmönster, Baja Plus, Baja truck camper, Sprinter overland build, van life tour, van build tour, off grid camper, expedition vehicle, overlanding setup, adventure rig, camper van walkthrough, 4x4 Sprinter camper, off-road camper tour, van life setup, best overland vehicles, month-long van trip, overland truck camper, off-road RV, modern overland rig, camper packing tips, real-world van life, full-time vanlife setup, premium van conversion.", "The Baja Plus is packed for a month-long trip.", 10, 907, false, "GKHBXkXh81k", "https://www.youtube.com/watch?v=GKHBXkXh81k", "/downloads/Vanlife/2025-12-03 The Baja Plus is packed for a month-long trip#/The Baja Plus is packed for a month-long trip. [GKHBXkXh81k].mkv", false, ~U[2025-12-03 23:07:24Z]] 11:05:34.138 [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" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.139 [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[2024-08-22 15:00:52Z], 10] 11:05:34.140 [debug] QUERY OK source="media_items" db=0.9ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Gear I used (I'm only listing the good stuff. Some of these are affiliate links)\nSENA 50C: https://www.sena.com/en-us/product/50c/\nKlim Induction Pro Jacket and Pants: https://www.klim.com/?rstr=52203\nKlim Krios Pro Helmet : https://www.klim.com/?rstr=52203\nAmazon Puffy Jacket: https://amzn.to/4fLRYpw\nTusk Pilot Pannier Bags: https://amzn.to/4dU5nKG\nTusk Tank Bag: https://amzn.to/46RBXKR\nMotoz Rallz tires : https://motoz.com.au/product/tractionator-rallz-2/\nRade Rally Tower: https://www.radegarage.com/product/husqvarna-701-f5/\nInsta 360 Camera: https://amzn.to/4cCtTPk\nRam Phone Mount: https://amzn.to/3WToUE2\n100% Goggles: https://amzn.to/3SUBhOU\nCanister For Fuel Bottle: https://amzn.to/3YP1KkP (you can get these locally at farm supply stores for less)\n\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\n\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\n\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "Adventure Motorcycles: But Why?", "cc522ce9-5e68-434d-ba4e-42fd12299d91", 10, [], 1673, false, "S1p5ktR0KC0", "https://www.youtube.com/watch?v=S1p5ktR0KC0", 70, "/downloads/Vanlife/2024-08-22 Adventure Motorcycles: But Why?/Adventure Motorcycles: But Why? [S1p5ktR0KC0].mkv", false, false, false, 1, ~U[2024-08-22 15:00:52Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Gear I used (I'm only listing the good stuff. Some of these are affiliate links)\nSENA 50C: https://www.sena.com/en-us/product/50c/\nKlim Induction Pro Jacket and Pants: https://www.klim.com/?rstr=52203\nKlim Krios Pro Helmet : https://www.klim.com/?rstr=52203\nAmazon Puffy Jacket: https://amzn.to/4fLRYpw\nTusk Pilot Pannier Bags: https://amzn.to/4dU5nKG\nTusk Tank Bag: https://amzn.to/46RBXKR\nMotoz Rallz tires : https://motoz.com.au/product/tractionator-rallz-2/\nRade Rally Tower: https://www.radegarage.com/product/husqvarna-701-f5/\nInsta 360 Camera: https://amzn.to/4cCtTPk\nRam Phone Mount: https://amzn.to/3WToUE2\n100% Goggles: https://amzn.to/3SUBhOU\nCanister For Fuel Bottle: https://amzn.to/3YP1KkP (you can get these locally at farm supply stores for less)\n\n\nSuperfast Matt is supported by:\nSendCutSend - For 15% off Fast laser cut parts, click here: https://sendcutsend.com/superfastmatt/\n\n\nBecome a Patron: https://www.patreon.com/superfastmatt\nJoin The Discord: https://discord.gg/hwBSkfThtP\n\n\nSubscribe - https://www.youtube.com/c/SuperfastMatt?sub_confirmation=1\nInstagram - https://www.instagram.com/superfastmatt\nTwitter - https://twitter.com/Superfast", "Adventure Motorcycles: But Why?", 10, 1673, false, "S1p5ktR0KC0", "https://www.youtube.com/watch?v=S1p5ktR0KC0", "/downloads/Vanlife/2024-08-22 Adventure Motorcycles: But Why?/Adventure Motorcycles: But Why? [S1p5ktR0KC0].mkv", false, ~U[2024-08-22 15:00:52Z]] 11:05:34.141 [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" = ?) [10] 11:05:34.141 [debug] QUERY OK source="media_items" db=0.3ms 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-11-02 14:00:22Z], 10] 11:05:34.142 [debug] QUERY OK source="media_items" db=0.8ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Go to https://surfshark.com/saillife or use code SAILLIFE at checkout to get 4 extra months of Surfshark VPN!\n\nI've been waiting for weeks to get our Shapeoko 5 Pro 4x4 CNC assembled in the new workshop. It's finally time! \n\nAva's Kindership: \nInstagram: https://www.instagram.com/thekindership/\nTikTok: https://www.tiktok.com/@thekindership\n\n** Links and contact information **\nMy email address is ohglorioussanding@gmail.com\nFor sponsor deals, please use this email: saillife@thestation.io\n\nAmazon wishlist: https://www.amazon.com/hz/wishlist/ls/2NJUK30IBFWO1\n\nSail Life website:\nhttps://www.saillifechannel.com/\n\nSail Life on Patreon:\nhttp://bit.ly/SailLifeOnPatreon\n\nSail Life on Instagram:\nhttps://www.instagram.com/saillife_\n\nSail Life on Facebook:\nhttp://bit.ly/SailLifeOnFacebook\n\nSail Life on Twitter:\nhttp://bit.ly/SailLifeOnTwitter\n\nTotalBoat: \nhttps://www.totalboat.com/saillife\n\nAthena on No Foreign Land:\nhttps://www.noforeignland.com/boat/saillife", "⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653", "423e1fe0-b5e0-4743-85f7-dfe45e32acd1", 10, [], 1414, false, "FdYSnitvVp0", "https://www.youtube.com/watch?v=FdYSnitvVp0", 71, "/downloads/Vanlife/2025-11-02 ⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653/⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653 [FdYSnitvVp0].mkv", false, false, false, 2, ~U[2025-11-02 14:00:22Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Go to https://surfshark.com/saillife or use code SAILLIFE at checkout to get 4 extra months of Surfshark VPN!\n\nI've been waiting for weeks to get our Shapeoko 5 Pro 4x4 CNC assembled in the new workshop. It's finally time! \n\nAva's Kindership: \nInstagram: https://www.instagram.com/thekindership/\nTikTok: https://www.tiktok.com/@thekindership\n\n** Links and contact information **\nMy email address is ohglorioussanding@gmail.com\nFor sponsor deals, please use this email: saillife@thestation.io\n\nAmazon wishlist: https://www.amazon.com/hz/wishlist/ls/2NJUK30IBFWO1\n\nSail Life website:\nhttps://www.saillifechannel.com/\n\nSail Life on Patreon:\nhttp://bit.ly/SailLifeOnPatreon\n\nSail Life on Instagram:\nhttps://www.instagram.com/saillife_\n\nSail Life on Facebook:\nhttp://bit.ly/SailLifeOnFacebook\n\nSail Life on Twitter:\nhttp://bit.ly/SailLifeOnTwitter\n\nTotalBoat: \nhttps://www.totalboat.com/saillife\n\nAthena on No Foreign Land:\nhttps://www.noforeignland.com/boat/saillife", "⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653", 10, 1414, false, "FdYSnitvVp0", "https://www.youtube.com/watch?v=FdYSnitvVp0", "/downloads/Vanlife/2025-11-02 ⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653/⛵️ This CNC will rebuild our hurricane-damaged catamaran. Ep 653 [FdYSnitvVp0].mkv", false, ~U[2025-11-02 14:00:22Z]] 11:05:34.143 [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" = ?) [10] 11:05:34.143 [debug] QUERY OK source="media_items" db=0.3ms 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[2024-01-15 14:00:22Z], 10] 11:05:34.144 [debug] QUERY OK source="media_items" db=0.8ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["These are the 6 Toilet Options we use MOST in our Custom Van Conversions. Read more here: \nhttps://saraandalexjames.com/vanlife-blog/the-6-best-toilet-options\n\nGet details on our Custom Builds here: https://customcraftedvans.com\n\nWatch more videos like this 👇\nThe PERFECT Van with Elevator Bed: https://www.youtube.com/watch?v=u81e42UksmE&t=5s\n\n\nSubscribe: https://www.youtube.com/@SaraandAlexJames?view_as=subscriber?sub_confirmation=1\n\nHi, we are Sara and Alex James and we're the founders of Custom Crafted Vans. We've always been passionate about travel and adventure, and we dreamed of creating a business that could help others experience the same joy - especially if you're embarking on a DIY van build like we did!\n\nOur backgrounds in construction and design have proven to be incredibly helpful in crafting our custom camper vans. We're all about the little details and are dedicated to crafting top-notch, practical, and beautiful spaces for our clients to relish during their journeys.\n\n➳ GET OUR FLOOR PLANS HERE: https://saraandalexjames.com/van-build-layout-guide\n\n➳ WINDOW COVERS: https://shop.thewanderful.co/?ref=alexjames\n\nYou can check out our custom van build work here: https://customcraftedvans.com\n\nSubscribe: https://www.youtube.com/@SaraandAlexJames?view_as=subscriber?sub_confirmation=1\n\n#vantour #vanlife #vantoilets\n\nLet's Connect...\nWebsite: https://saraandalexjames.com", "We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽", "6c840e0f-8870-46ab-a4fb-e1bd4156f7ac", 10, [], 428, false, "HU_UisEzLK0", "https://www.youtube.com/watch?v=HU_UisEzLK0", 72, "/downloads/Vanlife/2024-01-15 We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽/We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽 [HU_UisEzLK0].mkv", false, false, false, 1, ~U[2024-01-15 14:00:22Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "These are the 6 Toilet Options we use MOST in our Custom Van Conversions. Read more here: \nhttps://saraandalexjames.com/vanlife-blog/the-6-best-toilet-options\n\nGet details on our Custom Builds here: https://customcraftedvans.com\n\nWatch more videos like this 👇\nThe PERFECT Van with Elevator Bed: https://www.youtube.com/watch?v=u81e42UksmE&t=5s\n\n\nSubscribe: https://www.youtube.com/@SaraandAlexJames?view_as=subscriber?sub_confirmation=1\n\nHi, we are Sara and Alex James and we're the founders of Custom Crafted Vans. We've always been passionate about travel and adventure, and we dreamed of creating a business that could help others experience the same joy - especially if you're embarking on a DIY van build like we did!\n\nOur backgrounds in construction and design have proven to be incredibly helpful in crafting our custom camper vans. We're all about the little details and are dedicated to crafting top-notch, practical, and beautiful spaces for our clients to relish during their journeys.\n\n➳ GET OUR FLOOR PLANS HERE: https://saraandalexjames.com/van-build-layout-guide\n\n➳ WINDOW COVERS: https://shop.thewanderful.co/?ref=alexjames\n\nYou can check out our custom van build work here: https://customcraftedvans.com\n\nSubscribe: https://www.youtube.com/@SaraandAlexJames?view_as=subscriber?sub_confirmation=1\n\n#vantour #vanlife #vantoilets\n\nLet's Connect...\nWebsite: https://saraandalexjames.com", "We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽", 10, 428, false, "HU_UisEzLK0", "https://www.youtube.com/watch?v=HU_UisEzLK0", "/downloads/Vanlife/2024-01-15 We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽/We Found The Best Campervan Toilets | 6 Toilets for Van Life 🚽 [HU_UisEzLK0].mkv", false, ~U[2024-01-15 14:00:22Z]] 11:05:34.145 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.145 [debug] QUERY OK source="media_items" db=0.3ms 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[2024-12-08 00:34:51Z], 10] 11:05:34.147 [debug] QUERY OK source="media_items" db=0.9ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Odyssey and Odyssey Lite are now available for purchase. \n\nI am partnered with an RVIA and Mercedes certified company and together we will be building and perfecting these layouts. These builds are JD powerlisted and financing is available! if you are interested, send a message to my email: RavizzaLuxuryVans@gmail.com\n\n📸 Follow My Van Builds on Instagram: https://www.instagram.com/lucasravizza?igsh=ZGUzMzM3NWJiOQ==\n\nORIGINAL ODYSSEY VAN TOUR: https://youtu.be/D221sh1zoRs\n\nThis is Odyssey Lite. A Mercedes sprinter 144” wheelbase. The smaller version of the original Odyssey, which was built in the 170” wheelbase. This van still packs in all of the amenities. Air conditioning, bed lift, full shower, hydronic heating, Home theater, gear tray, gear garage and much more!\n\nORIGINAL ODYSSEY VAN TOUR: https://youtu.be/D221sh1zoRs\n\nEMAIL: ravizzaluxuryvans@gmail.com\n\n📸 Follow My Van Builds on Instagram: https://www.instagram.com/lucasravizza?igsh=ZGUzMzM3NWJiOQ==\n\nWEBSITE: https://www.ravizzaluxuryvans.com\n\nSOUND SYSTEM: https://geni.us/B6WO\n\nVolthium Battery’s: https://volthium.com/en/produit/12v-400ah-battery/?srsltid=AfmBOooeXR2lS3ek8d6NW_XwCytG02A9LxkOstgpIziZbU9Cly9v3Wyo\n\nRixens Hydronic Heating: https://rixens.com\n\nBuilding a van? Buy the right products: https://www.campervan-hq.com/?ref=LUCASRAVIZZA\n\nDisclaimer: This description contains affiliate links. If you purchase through these links, I may earn a commission at no extra cost to you! \n\n#vanlife #vanbuild #campervan #luxuryhomes #luxurydesign #diyvanconversion #rvlife", "LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐", "8084313d-8d0b-43c5-9c4a-f6fa87acb4d9", 10, [], 800, false, "L_maps8iHQE", "https://www.youtube.com/watch?v=L_maps8iHQE", 73, "/downloads/Vanlife/2024-12-08 LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐/LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐 [L_maps8iHQE].mp4", false, false, false, 1, ~U[2024-12-08 00:34:51Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Odyssey and Odyssey Lite are now available for purchase. \n\nI am partnered with an RVIA and Mercedes certified company and together we will be building and perfecting these layouts. These builds are JD powerlisted and financing is available! if you are interested, send a message to my email: RavizzaLuxuryVans@gmail.com\n\n📸 Follow My Van Builds on Instagram: https://www.instagram.com/lucasravizza?igsh=ZGUzMzM3NWJiOQ==\n\nORIGINAL ODYSSEY VAN TOUR: https://youtu.be/D221sh1zoRs\n\nThis is Odyssey Lite. A Mercedes sprinter 144” wheelbase. The smaller version of the original Odyssey, which was built in the 170” wheelbase. This van still packs in all of the amenities. Air conditioning, bed lift, full shower, hydronic heating, Home theater, gear tray, gear garage and much more!\n\nORIGINAL ODYSSEY VAN TOUR: https://youtu.be/D221sh1zoRs\n\nEMAIL: ravizzaluxuryvans@gmail.com\n\n📸 Follow My Van Builds on Instagram: https://www.instagram.com/lucasravizza?igsh=ZGUzMzM3NWJiOQ==\n\nWEBSITE: https://www.ravizzaluxuryvans.com\n\nSOUND SYSTEM: https://geni.us/B6WO\n\nVolthium Battery’s: https://volthium.com/en/produit/12v-400ah-battery/?srsltid=AfmBOooeXR2lS3ek8d6NW_XwCytG02A9LxkOstgpIziZbU9Cly9v3Wyo\n\nRixens Hydronic Heating: https://rixens.com\n\nBuilding a van? Buy the right products: https://www.campervan-hq.com/?ref=LUCASRAVIZZA\n\nDisclaimer: This description contains affiliate links. If you purchase through these links, I may earn a commission at no extra cost to you! \n\n#vanlife #vanbuild #campervan #luxuryhomes #luxurydesign #diyvanconversion #rvlife", "LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐", 10, 800, false, "L_maps8iHQE", "https://www.youtube.com/watch?v=L_maps8iHQE", "/downloads/Vanlife/2024-12-08 LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐/LUXURY VAN TOUR | “Odyssey Lite” | Best 144” Layout 🚐 [L_maps8iHQE].mp4", false, ~U[2024-12-08 00:34:51Z]] 11:05:34.147 [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" = ?) [10] 11:05:34.148 [debug] QUERY OK source="media_items" db=0.3ms 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-03-30 15:44:19Z], 10] 11:05:34.150 [debug] QUERY OK source="media_items" db=1.4ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This is a compilation of everything I know about building cabinets.\n✅️ PROJECT PLANS:\nBase Cabinets: https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinets - https://mwawoodworks.com/product/upper-cabinet-plans/ \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nTall Pantry Cabinet- https://mwawoodworks.com/product/tall-pantry-storage-cabinet/\nKitchen Island - https://mwawoodworks.com/product/kitchen-island/\nCabinet Plan Bundle - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nTV/Media Console/Sideboard- https://mwawoodworks.com/product/media-console-sideboard-plans/\nTall Storage Cabinet - https://mwawoodworks.com/product/tall-storage-cabinet/\n\n✅️ TOOLS AND SUPPLIES IN THESE VIDEOS:\nCentipede Work Holder - https://tsoproducts.com/accessories/bora-centipede-4x8-foot-unit-with-4-x-cups-4-clamps-carry-bag/?ref=MWAWW\nTrue Position Tools Cabinet Hardware Jig - https://amzn.to/3g3pgDr\nAmana Countersink Drill Bit - https://amzn.to/3vhyQgQ\nPlywood Router Bit Set - https://amzn.to/3sj7lxn\nSpectape Two Sided Tape - https://amzn.to/3wleKh4\nKreg Shelf Pin Jig (new model) - https://amzn.to/3kwugpG\nKreg Concealed Hinge Jig - https://amzn.to/3uOsyBV\nEnjoywood Pocket Hole Jig - https://amzn.to/3Zonuki\nPocket Screws - https://amzn.to/3mAGqsC\nCastle TSM-12 pocket cutting machine - https://bit.ly/castle-tsm-12-pocket-cutter\nMag Switch - https://amzn.to/3PqmasA\nBessey One Handed Clamps - https://amzn.to/2VWftbp\nSpeed Square - https://amzn.to/3xHGwEl\nQUICK & THICK WOOD GLUE - https://amzn.to/34AkFl5\nTITEBOND II WOOD GLUE - https://amzn.to/3b5UTHT\nPaste Wax (for screws) - https://amzn.to/3AOd41r\nSelf Centering Drill Bit - https://amzn.to/3yNNpFx\nFestool LR32 System - https://amzn.to/3KxTmPw\nFestool TS55 Track Saw - https://amzn.to/2RDrPPS\nFESTOOL DOMINO 500 - https://amzn.to/2Xu6Pzb\nFESTOOL RANDOM ORBIT SANDER -https://amzn.to/2K10nru\nFreud Flat Grind Table Saw Blade - https://amzn.to/34yjKTE\nFreud Round over Router Bit - https://amzn.to/37yhEVI\nExtra Long Drill Extension - https://amzn.to/3pb4jbG\nQuad Edge Band Trimmer - https://amzn.to/2XzftMT\nSPEED ROLLER PRO - https://amzn.to/3cfDzjI\nFLUSH CUT PLIERS - https://amzn.to/2wxJUb9\nFASTBREAK DUAL EDGE SANDER - https://amzn.to/3eg5GkP\nPRE-FINISHED MAPLE EDGE BANDING - https://amzn.to/2RuHrpq\nMAGNETIC CATCHES - https://amzn.to/3cgqfMm\nRARE EARTH MAGNETS - https://amzn.to/2yVoXYE\nBUTT HINGES -https://amzn.to/2xs16PV\nDOOR PULLS - https://amzn.to/2VoGwrx\nRAISED PANEL BIT - https://amzn.to/2Rxm9aA\n35mm Forstner Bit for door cup hinges - https://amzn.to/30WQO3S\nCenter Punch - https://amzn.to/2PKnfRF\nParallel Clamps - https://amzn.to/30ZNRPZ\nTape Measure - https://amzn.to/43mLfwx\nMallet - https://amzn.to/43o54Ug\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: https://patreon.com/MWAWoodworks \nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\nHow to Build Cabinets \n⏱️ Chapters\n00:00 Intro\n00:44 Build Base Cabinets\n18:46 Build Upper Cabinets\n31:58 Tips & Tricks for Cabinet Making\n47:00 Deep Drawer Base Cabinets\n58:32 Tall Pantry Cabinet with Trays\n01:14:02 Build Kitchen Island\n01:39:08 Build a Console Sideboard\n01:53:38 Tall Shop Storage Cabinet\n02:03:10 Build Frame & Panel Doors\n02:11:10 Hang Cabinets on Cinder Block\n\n#cabinets#carpentry#woodworking", "DIY Cabinets - The Complete Guide", "29b31644-021f-4a5b-a768-5db5e0e9e1a1", 10, [], 8169, false, "4nHzlL_d5wg", "https://www.youtube.com/watch?v=4nHzlL_d5wg", 74, "/downloads/Vanlife/2024-03-30 DIY Cabinets - The Complete Guide/DIY Cabinets - The Complete Guide [4nHzlL_d5wg].mkv", false, false, false, 1, ~U[2024-03-30 15:44:19Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "This is a compilation of everything I know about building cabinets.\n✅️ PROJECT PLANS:\nBase Cabinets: https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinets - https://mwawoodworks.com/product/upper-cabinet-plans/ \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nTall Pantry Cabinet- https://mwawoodworks.com/product/tall-pantry-storage-cabinet/\nKitchen Island - https://mwawoodworks.com/product/kitchen-island/\nCabinet Plan Bundle - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nTV/Media Console/Sideboard- https://mwawoodworks.com/product/media-console-sideboard-plans/\nTall Storage Cabinet - https://mwawoodworks.com/product/tall-storage-cabinet/\n\n✅️ TOOLS AND SUPPLIES IN THESE VIDEOS:\nCentipede Work Holder - https://tsoproducts.com/accessories/bora-centipede-4x8-foot-unit-with-4-x-cups-4-clamps-carry-bag/?ref=MWAWW\nTrue Position Tools Cabinet Hardware Jig - https://amzn.to/3g3pgDr\nAmana Countersink Drill Bit - https://amzn.to/3vhyQgQ\nPlywood Router Bit Set - https://amzn.to/3sj7lxn\nSpectape Two Sided Tape - https://amzn.to/3wleKh4\nKreg Shelf Pin Jig (new model) - https://amzn.to/3kwugpG\nKreg Concealed Hinge Jig - https://amzn.to/3uOsyBV\nEnjoywood Pocket Hole Jig - https://amzn.to/3Zonuki\nPocket Screws - https://amzn.to/3mAGqsC\nCastle TSM-12 pocket cutting machine - https://bit.ly/castle-tsm-12-pocket-cutter\nMag Switch - https://amzn.to/3PqmasA\nBessey One Handed Clamps - https://amzn.to/2VWftbp\nSpeed Square - https://amzn.to/3xHGwEl\nQUICK & THICK WOOD GLUE - https://amzn.to/34AkFl5\nTITEBOND II WOOD GLUE - https://amzn.to/3b5UTHT\nPaste Wax (for screws) - https://amzn.to/3AOd41r\nSelf Centering Drill Bit - https://amzn.to/3yNNpFx\nFestool LR32 System - https://amzn.to/3KxTmPw\nFestool TS55 Track Saw - https://amzn.to/2RDrPPS\nFESTOOL DOMINO 500 - https://amzn.to/2Xu6Pzb\nFESTOOL RANDOM ORBIT SANDER -https://amzn.to/2K10nru\nFreud Flat Grind Table Saw Blade - https://amzn.to/34yjKTE\nFreud Round over Router Bit - https://amzn.to/37yhEVI\nExtra Long Drill Extension - https://amzn.to/3pb4jbG\nQuad Edge Band Trimmer - https://amzn.to/2XzftMT\nSPEED ROLLER PRO - https://amzn.to/3cfDzjI\nFLUSH CUT PLIERS - https://amzn.to/2wxJUb9\nFASTBREAK DUAL EDGE SANDER - https://amzn.to/3eg5GkP\nPRE-FINISHED MAPLE EDGE BANDING - https://amzn.to/2RuHrpq\nMAGNETIC CATCHES - https://amzn.to/3cgqfMm\nRARE EARTH MAGNETS - https://amzn.to/2yVoXYE\nBUTT HINGES -https://amzn.to/2xs16PV\nDOOR PULLS - https://amzn.to/2VoGwrx\nRAISED PANEL BIT - https://amzn.to/2Rxm9aA\n35mm Forstner Bit for door cup hinges - https://amzn.to/30WQO3S\nCenter Punch - https://amzn.to/2PKnfRF\nParallel Clamps - https://amzn.to/30ZNRPZ\nTape Measure - https://amzn.to/43mLfwx\nMallet - https://amzn.to/43o54Ug\n*Disclaimer – As an Amazon Associate I earn from qualif (truncated) 11:05:34.150 [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" = ?) [10] 11:05:34.151 [debug] QUERY OK source="media_items" db=0.3ms 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[2022-02-22 03:31:03Z], 10] 11:05:34.153 [debug] QUERY OK source="media_items" db=1.3ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Hydronic heating Van floors is an amazing thing to have in your van if you can build it in. This is going to be a multi part series about the installation of a hydronically heated floor as part of my North American Vanlife Industry Tour series. Just Roaming Design is helping me with the install, and we will start this series with the cutting of the templates for the floor, as well as my reasoning behind getting a hydronic heating floor and getting introduced to the shop.\n\nJust Roaming Design: https://www.justroamingdesign.com/ Facebook: https://www.facebook.com/JustRoamingConversions Instagram: https://www.instagram.com/justroamingdesign \n\nRixens: https://rixens.com/\n\nTeddy’s Knife Company: https://peachsmithdesigns.wixsite.com/peachsmithdesigns\n\nMichaels CNC Company: \nhttps://www.cascade-cnc.com/\nhttps://www.michaeldaviderspamer.com/\n\nSee my Vanlife Tour Map Here: http://jayoe.com/vanlife-industry-tour/\nCheck out my stats and Vanlife plans here: http://jayoe.com/vanlife-industry/\n\n00:00 – Introduction\n01:11 – Templating\n04:08 – Teddy’s Knife Business\n04:51 – Custom Cabinets\n07:55 – Why do I need a hydronic floor?\n09:07 – Hydronic System\n10:34 – Why don’t you just Migrate?\n11:55 – Hidden Shower Pan\n14:31 – Final floor template adjustments\n15:11 – Cutting the final templates\n18:41 – Designing the final floor panels\n19:50 – Food Truck Lunch\n\n--------- SUPPORT ME ---------\nPATREON: https://www.patreon.com/JaYoe \nBUY ME A COFFEE: https://ko-fi.com/jayoe\nSHOP ON JAYOE: https://jayoe.com/jayoe-gear-and-merch/\nSEND ME ON WECHAT: http://jayoe.com/wechat/\n\n--------- SUPPORT ME ON YOUTUBE ---------\nhttps://www.youtube.com/JaYoeNation/join\n\nFollow me on the Internets…\nWEBSITE: http://www.jayoe.com \nYOUTUBE: https://www.youtube.com/JaYoeNation \nFACEBOOK: https://www.facebook.com/JaYoeLife/ \nINSTAGRAM: https://www.instagram.com/jayoelife/ \nTWITTER: https://twitter.com/jayoelife \nBilliBIlli: https://space.bilibili.com/100182773\nDouyin: 加油马特\nToutiao: http://toutiao.com/m1681328028969998/\nREDBUBBLE STORE: https://www.redbubble.com/shop/jayoe\nPERSONAL FACEBOOK: https://www.facebook.com/mcgalat \nPODCAST: https://itunes.apple.com/us/podcast/podcast-jayoe!/id1044254053?mt=2\nSTRAVA: https://www.strava.com/athletes/21659886 \nGARMIN: https://connect.garmin.com/modern/profile/JaYoeLife\n\n\n***MY VANLIFE TOUR LINKS***\nInterested in a WIFI Booster or Cellular Extender? Use the links below!\nhttps://www.wilsonamplifiers.com/?jayoe\nhttps://boltontechnical.com/?jayoe\nFind Lizard Skin Online at: https://lizardskin.com/\nBuy Lizard Skin thru my Affiliate links please!\nSound Barrier Deadener: https://amzn.to/3skCAud\nCeramic Thermal Barrier: https://amzn.to/3mdoEyh\nSpray Nozzle: https://amzn.to/3p6yT9u\nAgile Offroad - https://agileoffroad.com/\n\n--------- JAYOE MERCHANDISE ON REDBUBBLE ---------\nhttps://www.redbubble.com/shop/jayoe\n\n------- WHAT DOES JAYOE MEAN? ---------\nhttps://youtu.be/4m7t4Vt1Ir8\n\n------- OTHER SERIES ON THE JAYOE NATION -------\n\nCLIMB UP MOUNT EVEREST\nWatch me on my Everest summit expedition!\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vsnzp_JW0t7Os2EEkyjt_P\n\nMARATHON IN NORTH KOREA\nJoin me as I run a marathon in North Korea, DPRK!\nhttps://youtu.be/DJxsu10VNwA\n\nTHE JAYOE TRAVELOGUES\nThe precursor to my VLOGs, a cycling travel documentary series\nhttps://jayoe.com/the-jayoe-travelogues/ \n\nMATT’S REEF TANK\nA series dedicated to the marine reef tank hobby\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vQAUeuFaIuV-BfbXw-Mx1N\n\n\nJY_VLOG 1143 – Hydronic Floor Template\n\nTravel Vlog\n\n#justroamingdesign #hydronicheating #hydronic #hydronicvanfloor #rixens #rixensheating #vanlife #vanbuild #vanconversion #fordtransit #sprinterconversion #promasterwindows #cncvanlife #justroaming #heatedvanlife #heatingvan #vanconversion #digitalnomad #tinyhouse", "Building a Hydronic Heating Floor System in a Van | Part 1: Templating", "b9961401-5f5d-4f86-9c63-e65573a7d9ac", 10, [], 1276, false, "DZoRaiawjr4", "https://www.youtube.com/watch?v=DZoRaiawjr4", 75, "/downloads/Vanlife/2022-02-22 Building a Hydronic Heating Floor System in a Van | Part 1: Templating/Building a Hydronic Heating Floor System in a Van | Part 1: Templating [DZoRaiawjr4].mp4", false, false, false, 1, ~U[2022-02-22 03:31:03Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Hydronic heating Van floors is an amazing thing to have in your van if you can build it in. This is going to be a multi part series about the installation of a hydronically heated floor as part of my North American Vanlife Industry Tour series. Just Roaming Design is helping me with the install, and we will start this series with the cutting of the templates for the floor, as well as my reasoning behind getting a hydronic heating floor and getting introduced to the shop.\n\nJust Roaming Design: https://www.justroamingdesign.com/ Facebook: https://www.facebook.com/JustRoamingConversions Instagram: https://www.instagram.com/justroamingdesign \n\nRixens: https://rixens.com/\n\nTeddy’s Knife Company: https://peachsmithdesigns.wixsite.com/peachsmithdesigns\n\nMichaels CNC Company: \nhttps://www.cascade-cnc.com/\nhttps://www.michaeldaviderspamer.com/\n\nSee my Vanlife Tour Map Here: http://jayoe.com/vanlife-industry-tour/\nCheck out my stats and Vanlife plans here: http://jayoe.com/vanlife-industry/\n\n00:00 – Introduction\n01:11 – Templating\n04:08 – Teddy’s Knife Business\n04:51 – Custom Cabinets\n07:55 – Why do I need a hydronic floor?\n09:07 – Hydronic System\n10:34 – Why don’t you just Migrate?\n11:55 – Hidden Shower Pan\n14:31 – Final floor template adjustments\n15:11 – Cutting the final templates\n18:41 – Designing the final floor panels\n19:50 – Food Truck Lunch\n\n--------- SUPPORT ME ---------\nPATREON: https://www.patreon.com/JaYoe \nBUY ME A COFFEE: https://ko-fi.com/jayoe\nSHOP ON JAYOE: https://jayoe.com/jayoe-gear-and-merch/\nSEND ME ON WECHAT: http://jayoe.com/wechat/\n\n--------- SUPPORT ME ON YOUTUBE ---------\nhttps://www.youtube.com/JaYoeNation/join\n\nFollow me on the Internets…\nWEBSITE: http://www.jayoe.com \nYOUTUBE: https://www.youtube.com/JaYoeNation \nFACEBOOK: https://www.facebook.com/JaYoeLife/ \nINSTAGRAM: https://www.instagram.com/jayoelife/ \nTWITTER: https://twitter.com/jayoelife \nBilliBIlli: https://space.bilibili.com/100182773\nDouyin: 加油马特\nToutiao: http://toutiao.com/m1681328028969998/\nREDBUBBLE STORE: https://www.redbubble.com/shop/jayoe\nPERSONAL FACEBOOK: https://www.facebook.com/mcgalat \nPODCAST: https://itunes.apple.com/us/podcast/podcast-jayoe!/id1044254053?mt=2\nSTRAVA: https://www.strava.com/athletes/21659886 \nGARMIN: https://connect.garmin.com/modern/profile/JaYoeLife\n\n\n***MY VANLIFE TOUR LINKS***\nInterested in a WIFI Booster or Cellular Extender? Use the links below!\nhttps://www.wilsonamplifiers.com/?jayoe\nhttps://boltontechnical.com/?jayoe\nFind Lizard Skin Online at: https://lizardskin.com/\nBuy Lizard Skin thru my Affiliate links please!\nSound Barrier Deadener: https://amzn.to/3skCAud\nCeramic Thermal Barrier: https://amzn.to/3mdoEyh\nSpray Nozzle: https://amzn.to/3p6yT9u\nAgile Offroad - https://agileoffroad.com/\n\n--------- JAYOE MERCHANDISE ON REDBUBBLE ---------\nhttp (truncated) 11:05:34.153 [debug] QUERY OK source="sources" db=0.3ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.154 [debug] QUERY OK source="media_items" db=0.3ms 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-03-15 08:00:00Z], 10] 11:05:34.155 [debug] QUERY OK source="media_items" db=1.2ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The 5 Biggest DIY Campervan Build Mistakes I Made || 5 Costly Mistakes We Made On Our Campervan Build || 5 things I regret on my self build campervan || 5 Things We Got Totally Wrong On Our Self-Build Campervan\n\nHowden Modified Van sponsor aBuckLife, we specialise in modified/converted van insurance & offer a club discount* (*subject to criteria) when calling the team on 01635 879 910 and mentioning \"aBuckLife\". Or use this link for a call back https://www.howdeninsurance.co.uk/common-pages/get-a-quote?root=1109&page=1130&int=11554\nBoth of my vans are insured with Howden and we genuinely rate them. They can also insure your car, home and travel and get a discount when you use my code.\n\nFollow us on Instagram @abucklifeofficial\n\nDownload Helpful Stuff on My Patreon for FREE \nhttps://patreon.com/aBuckLife?utm_medium=unknown&utm_source=join_link&utm_campaign=creatorshare_creator&utm_content=copyLink\n\nWhen we built our self-build campervan, we thought we had planned everything perfectly. But after travelling thousands of miles and actually living with the van, we realised there were a few things we got completely wrong.\n\nIn this video I’m sharing the 5 biggest mistakes we made on our campervan build, including decisions around side pods, battery capacity, storage space, weight, and fridge size. If you're planning your own DIY campervan conversion, these lessons could save you time, money, and a lot of frustration.\n\nBuilding a van is all about trade-offs, and some of the choices that seemed like great ideas during the build turned out to be things we would definitely change if we built another van.\n\nHopefully these insights help you design a better self-build campervan and avoid some of the mistakes we made.\n\n🔧 Quality Products We Use in Our Self-Build Camper Van\nThese are the tried-and-tested products that make our 4x4 VW Crafter and Ford Transit stealth camper builds functional, comfortable, and adventure-ready.\n\n- VANDERMOON MOONBOXES AND MOON ORGANISERS | We love all our VANDERMOON gear, from the moon boxes to the moon organisers our van would not be as functional and light weight without them.\nUse Code 'buck10' for 10% off your order! Check out Vandermoon here https://www.vandermoon.com/eng/en/logowanie?create_account=1&s=buck10\n(you do need to use the link for the discount to work!)\n- Use Van Space 3D to help design you own van. We found it really helpful to visualise the build. click the link below:\nhttps://abucklife--vanspace3d.thrivecart.com/vanspace-3d-lifetime/60bfc5e47b9bf/\n-Get Your Wolfbox G900 Pro Dash Cam\nOfficial Site |Code: WBSAVE10(£10 off)→ \nhttps://uk.wolfbox.com/products/wolfbox-2024-g900-pro-wifi-touch-screen-parking-monitoring-dash-cam-smart-mirror-with-starvis-678-sensor?ref=gqdvweeh\n- TRELINO TOILET| Our off grid travel would not be possible without our Trelino Toilet. Game Changer. \nClick the link https://tidd.ly/4gwZnsa and use the code 'abucklife' to receive a FREE accessories set when ordering a Trelino composting toilet.\n- AUXBEAM LIGHTING | Use this code 'ABL15' to save 15% off your first order and the link https://www.shareasale.com/u.cfm?d=1262373&m=67515&u=4545378\n- HELINOX | camping furniture is so lightweight, easy to set up and durable. Little man loves his mini chair. Use this link https://tidd.ly/41M7tZF and code 'VN7GQVZ43XDB' for 10% OFF. \n- SOLO STOVE | is amazing for a safe camp fire and is from www.adventurevanlife.com. Use code 'abucklife' for discount site wide.\n- AUTOTERM DIESEL HEATER| We stay warm with a 4KW AUTOTERM Diesel Heater and Engine Pre Heater. Use code 'abucklife' for discount at www.autoterm.store\n\nSome links in this description are affiliate links. When you buy through these links, I get a small commission at no extra cost to you. This really supports the channel and helps us to bring better content to you and we really appreciate the support. Thank you.", "Don't Waste Time and Money | 5 Campervan Build Mistakes", "b1565c42-2c38-470a-b568-825fe65efe1c", 10, [], 660, false, "Wyqv40KmNOk", "https://www.youtube.com/watch?v=Wyqv40KmNOk", 76, "/downloads/Vanlife/2026-03-15 Don't Waste Time and Money | 5 Campervan Build Mistakes/Don't Waste Time and Money | 5 Campervan Build Mistakes [Wyqv40KmNOk].mkv", false, false, false, 1, ~U[2026-03-15 08:00:00Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The 5 Biggest DIY Campervan Build Mistakes I Made || 5 Costly Mistakes We Made On Our Campervan Build || 5 things I regret on my self build campervan || 5 Things We Got Totally Wrong On Our Self-Build Campervan\n\nHowden Modified Van sponsor aBuckLife, we specialise in modified/converted van insurance & offer a club discount* (*subject to criteria) when calling the team on 01635 879 910 and mentioning \"aBuckLife\". Or use this link for a call back https://www.howdeninsurance.co.uk/common-pages/get-a-quote?root=1109&page=1130&int=11554\nBoth of my vans are insured with Howden and we genuinely rate them. They can also insure your car, home and travel and get a discount when you use my code.\n\nFollow us on Instagram @abucklifeofficial\n\nDownload Helpful Stuff on My Patreon for FREE \nhttps://patreon.com/aBuckLife?utm_medium=unknown&utm_source=join_link&utm_campaign=creatorshare_creator&utm_content=copyLink\n\nWhen we built our self-build campervan, we thought we had planned everything perfectly. But after travelling thousands of miles and actually living with the van, we realised there were a few things we got completely wrong.\n\nIn this video I’m sharing the 5 biggest mistakes we made on our campervan build, including decisions around side pods, battery capacity, storage space, weight, and fridge size. If you're planning your own DIY campervan conversion, these lessons could save you time, money, and a lot of frustration.\n\nBuilding a van is all about trade-offs, and some of the choices that seemed like great ideas during the build turned out to be things we would definitely change if we built another van.\n\nHopefully these insights help you design a better self-build campervan and avoid some of the mistakes we made.\n\n🔧 Quality Products We Use in Our Self-Build Camper Van\nThese are the tried-and-tested products that make our 4x4 VW Crafter and Ford Transit stealth camper builds functional, comfortable, and adventure-ready.\n\n- VANDERMOON MOONBOXES AND MOON ORGANISERS | We love all our VANDERMOON gear, from the moon boxes to the moon organisers our van would not be as functional and light weight without them.\nUse Code 'buck10' for 10% off your order! Check out Vandermoon here https://www.vandermoon.com/eng/en/logowanie?create_account=1&s=buck10\n(you do need to use the link for the discount to work!)\n- Use Van Space 3D to help design you own van. We found it really helpful to visualise the build. click the link below:\nhttps://abucklife--vanspace3d.thrivecart.com/vanspace-3d-lifetime/60bfc5e47b9bf/\n-Get Your Wolfbox G900 Pro Dash Cam\nOfficial Site |Code: WBSAVE10(£10 off)→ \nhttps://uk.wolfbox.com/products/wolfbox-2024-g900-pro-wifi-touch-screen-parking-monitoring-dash-cam-smart-mirror-with-starvis-678-sensor?ref=gqdvweeh\n- TRELINO TOILET| Our off grid travel would not be possible without our Trelino Toilet. Game Changer. \nClick the link https://tidd.ly/4gwZnsa and use the code 'abucklife' to receive a FREE accessories set (truncated) 11:05:34.156 [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" = ?) [10] 11:05:34.156 [debug] QUERY OK source="media_items" db=0.3ms 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-11 17:00:57Z], 10] 11:05:34.158 [debug] QUERY OK source="media_items" db=1.0ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["After two years of traveling in our adventure van, we have learned that van life is not always what it looks like online. The epic views, total freedom, and effortless living exist sometimes, but a lot of the reality never makes it into the videos.\n\nWe talk through the biggest van life lies, from parking lot nights and shared space challenges to where a van can realistically go, what van life actually costs, and why being fully self-sufficient is harder than it sounds. We also share the habits and mindset shifts that have made life on the road more sustainable in our Winnebago Revel.\n\nVan life is not fake, but it is not a fantasy either. Once expectations change, the experience gets a lot better.\n\n0:00 - Van Life Lies\n0:31 - Always Epic Views\n1:22 - Van life alone\n2:50 - Go Anywhere you want\n3:34 - Van Life is Cheap\n5:23 - Self Sufficient\n7:35 - Weather \n9:25 - Park and Relax\n \nThis video is NOT SPONSORED. This post contains affiliate links, meaning we get a commission if you decide to make a purchase through the links at no cost to you. \n\n🛸 Our drone footage is captured legally and responsibly under FAA Part 107 certification.\n\n• • • •\n⛺️ EXPLORE TREK ADVENTURE AMAZON STORE ⛺️ \nhttps://www.amazon.com/shop/exploretrekadventure\n\n 📺 Seen on YouTube: https://amzn.to/46tkiYM \n📱 Seen on Tiktok: https://amzn.to/3RPUP7r \n🎒 Backpacks: https://amzn.to/46MQG8G \n🏕️ Camp Shelters & Sleep Systems: https://amzn.to/3FfpyDe \n🥾 Day Hiking Gear: https://amzn.to/46rzHbZ \n🧰 DIY Solar Battery Box: https://amzn.to/46s2jSo \n🍳 Camp Kitchen: https://amzn.to/3tuwdHe \n🛶 Kayak Gear: https://amzn.to/3PUqqlE \n🚽 Camp Toilet: https://amzn.to/45sLZ2o \n🪑 Camp Chairs: https://amzn.to/3Qc5iIZ \n🚐 Rooftop Tent Gear: https://amzn.to/45rN1vB \n🏃🏻\u200D♂️ Running Gear: https://amzn.to/48QGP3u \n📸 Camera Gear: https://amzn.to/3PQRcLY \n🦟 Bug Defense: https://amzn.to/48RU2c4 \n\n• • • •\nCheck out our Website: http://ExploreTrekAdventure.com \nhttp://instagram.com/exploretrekadventure\nhttp://tiktok.com/@exploretrekadventure\n\n#vanlife #winnebagorevel #adventurevan", "The 7 Biggest Lies About Vanlife (No One Tells You This)", "18b8e008-bd5f-4e3a-a5f1-de4b140f30fa", 10, [], 689, false, "UWJIUtySjT4", "https://www.youtube.com/watch?v=UWJIUtySjT4", 77, "/downloads/Vanlife/2026-01-11 The 7 Biggest Lies About Vanlife (No One Tells You This)/The 7 Biggest Lies About Vanlife (No One Tells You This) [UWJIUtySjT4].mkv", false, false, false, 1, ~U[2026-01-11 17:00:57Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "After two years of traveling in our adventure van, we have learned that van life is not always what it looks like online. The epic views, total freedom, and effortless living exist sometimes, but a lot of the reality never makes it into the videos.\n\nWe talk through the biggest van life lies, from parking lot nights and shared space challenges to where a van can realistically go, what van life actually costs, and why being fully self-sufficient is harder than it sounds. We also share the habits and mindset shifts that have made life on the road more sustainable in our Winnebago Revel.\n\nVan life is not fake, but it is not a fantasy either. Once expectations change, the experience gets a lot better.\n\n0:00 - Van Life Lies\n0:31 - Always Epic Views\n1:22 - Van life alone\n2:50 - Go Anywhere you want\n3:34 - Van Life is Cheap\n5:23 - Self Sufficient\n7:35 - Weather \n9:25 - Park and Relax\n \nThis video is NOT SPONSORED. This post contains affiliate links, meaning we get a commission if you decide to make a purchase through the links at no cost to you. \n\n🛸 Our drone footage is captured legally and responsibly under FAA Part 107 certification.\n\n• • • •\n⛺️ EXPLORE TREK ADVENTURE AMAZON STORE ⛺️ \nhttps://www.amazon.com/shop/exploretrekadventure\n\n 📺 Seen on YouTube: https://amzn.to/46tkiYM \n📱 Seen on Tiktok: https://amzn.to/3RPUP7r \n🎒 Backpacks: https://amzn.to/46MQG8G \n🏕️ Camp Shelters & Sleep Systems: https://amzn.to/3FfpyDe \n🥾 Day Hiking Gear: https://amzn.to/46rzHbZ \n🧰 DIY Solar Battery Box: https://amzn.to/46s2jSo \n🍳 Camp Kitchen: https://amzn.to/3tuwdHe \n🛶 Kayak Gear: https://amzn.to/3PUqqlE \n🚽 Camp Toilet: https://amzn.to/45sLZ2o \n🪑 Camp Chairs: https://amzn.to/3Qc5iIZ \n🚐 Rooftop Tent Gear: https://amzn.to/45rN1vB \n🏃🏻\u200D♂️ Running Gear: https://amzn.to/48QGP3u \n📸 Camera Gear: https://amzn.to/3PQRcLY \n🦟 Bug Defense: https://amzn.to/48RU2c4 \n\n• • • •\nCheck out our Website: http://ExploreTrekAdventure.com \nhttp://instagram.com/exploretrekadventure\nhttp://tiktok.com/@exploretrekadventure\n\n#vanlife #winnebagorevel #adventurevan", "The 7 Biggest Lies About Vanlife (No One Tells You This)", 10, 689, false, "UWJIUtySjT4", "https://www.youtube.com/watch?v=UWJIUtySjT4", "/downloads/Vanlife/2026-01-11 The 7 Biggest Lies About Vanlife (No One Tells You This)/The 7 Biggest Lies About Vanlife (No One Tells You This) [UWJIUtySjT4].mkv", false, ~U[2026-01-11 17:00:57Z]] 11:05:34.158 [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" = ?) [10] 11:05:34.159 [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[2017-12-10 19:56:49Z], 10] 11:05:34.160 [debug] QUERY OK source="media_items" db=0.6ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Daniel Yudchitz and his father, Bill, are both architects who took their love of craft, cabins, and Swiss precision in architecture (e.g. Peter Zumthor) and created a CNC-cut cabin crafted to a fraction of an inch.\n\nThe home is built with interlocking structural panels and can be disassembled. In fact, the father/son team built most of it in their parking lot, moved it, and completed the build on the grounds of a state fair before moving it once again to its final resting place on their property on Lake Superior (in far north Wisconsin near Bayfield).\n\nThe furniture was built to interlock and morph from table and benches into a disabled-accessible bed.\n\n— Revelations Architecture: http://www.revarch.com/\n— Drone footage: https://www.youtube.com/channel/UCtHxXQT1icYEEt-O1d1aQuw\n\nOriginal story: https://faircompanies.com/videos/transformer-cnc-cabin-by-a-lake-as-a-father-son-work-dialogue/", "Transformer CNC cabin by a lake becomes father-son work dialogue", "48221652-7a0b-4ed6-961c-2299605ffada", 10, [], 1240, false, "mVEOTauSAPg", "https://www.youtube.com/watch?v=mVEOTauSAPg", 78, "/downloads/Vanlife/2017-12-10 Transformer CNC cabin by a lake becomes father-son work dialogue/Transformer CNC cabin by a lake becomes father-son work dialogue [mVEOTauSAPg].mkv", false, false, false, 1, ~U[2017-12-10 19:56:49Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Daniel Yudchitz and his father, Bill, are both architects who took their love of craft, cabins, and Swiss precision in architecture (e.g. Peter Zumthor) and created a CNC-cut cabin crafted to a fraction of an inch.\n\nThe home is built with interlocking structural panels and can be disassembled. In fact, the father/son team built most of it in their parking lot, moved it, and completed the build on the grounds of a state fair before moving it once again to its final resting place on their property on Lake Superior (in far north Wisconsin near Bayfield).\n\nThe furniture was built to interlock and morph from table and benches into a disabled-accessible bed.\n\n— Revelations Architecture: http://www.revarch.com/\n— Drone footage: https://www.youtube.com/channel/UCtHxXQT1icYEEt-O1d1aQuw\n\nOriginal story: https://faircompanies.com/videos/transformer-cnc-cabin-by-a-lake-as-a-father-son-work-dialogue/", "Transformer CNC cabin by a lake becomes father-son work dialogue", 10, 1240, false, "mVEOTauSAPg", "https://www.youtube.com/watch?v=mVEOTauSAPg", "/downloads/Vanlife/2017-12-10 Transformer CNC cabin by a lake becomes father-son work dialogue/Transformer CNC cabin by a lake becomes father-son work dialogue [mVEOTauSAPg].mkv", false, ~U[2017-12-10 19:56:49Z]] 11:05:34.160 [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" = ?) [10] 11:05:34.161 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-08 16:00:34Z], 10] 11:05:34.162 [debug] QUERY OK source="media_items" db=1.0ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["From start to finish here are some highlights about how I built my kitchen cabinet. This is going in a 2022 Mercedes Sprinter 4x4. I’m sorry about all the time lapse in the starting build footage, but that is what I captured when initially working on this cabinet. The chapters below try to list the main concepts, but there are quite a few miscellaneous tips and tricks scattered throughout. \n\n0:00 Intro\n1:26 Initial Design Considerations\n2:05 Initial Carcass Assembly\n3:41 Pre Installation Tips\n4:31 #1 Electrical and Plumbing Accommodations\n5:33 #2 Drawer and Door Latch Alignment Made Easy\n8:44 Continuous Grain Obsession\n11:43 Touching Up and Sanding Unique Plywood\n14:29 Human CNC Router Setup\n16:00 Being a Human CNC\n17:09 Flush Trimming Frame Outside\n17:21 Small Cutout Stuff\n18:23 Finished Product\n\nIf you found this entertaining, educational or even enraging, consider buying me a coffee...or a beer;). Please use the link:\nhttps://www.buymeacoffee.com/projectofscience \nThank you for your support!\n\nRelated products and links (Amazon links help me out, thank you!)\n\nSouthco M1-2A-13-5 Drawer Latches I use: https://amzn.to/3Zixlrz\n\nScribe for marking locations through small holes: https://amzn.to/3zKzYYM \n\nBesides a table saw, most of these techniques involve the router. I recommend a small trim or palm router for most van work as you aren’t hogging off thick wood cuts usually. \n\nMakita Router I use: https://amzn.to/40jlScx \nThe Plunge Base is very helpful for lots of projects, and the fixed base is easier to operate with one hand. \n\nGuide Bushing Set: https://amzn.to/41cKiVm \nDepending on your router you may not need the adapter, or might need a different one? This works with my Makita. \n\n1/16” Router Bits:\nFor thin woods I’ve been using this: https://amzn.to/40RHXzn \nFor heavier full depth cuts I’ve had better luck with: https://amzn.to/40JzNsJ \n\nMy favorite Flush Trim Bit: https://amzn.to/3Km2HrR \nAlmost any will do though. Pay attention if you need top or bottom bearing, or both like this one. \n\nCorner Radius Drawing Templates: https://amzn.to/40I9eEN", "Building a Lightweight Van Conversion Kitchen Cabinet", "8680ee04-82ac-4044-93c6-52d639f3d0de", 10, [], 1146, false, "ilCfLkSM-jU", "https://www.youtube.com/watch?v=ilCfLkSM-jU", 79, "/downloads/Vanlife/2023-04-08 Building a Lightweight Van Conversion Kitchen Cabinet/Building a Lightweight Van Conversion Kitchen Cabinet [ilCfLkSM-jU].mp4", false, false, false, 1, ~U[2023-04-08 16:00:34Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "From start to finish here are some highlights about how I built my kitchen cabinet. This is going in a 2022 Mercedes Sprinter 4x4. I’m sorry about all the time lapse in the starting build footage, but that is what I captured when initially working on this cabinet. The chapters below try to list the main concepts, but there are quite a few miscellaneous tips and tricks scattered throughout. \n\n0:00 Intro\n1:26 Initial Design Considerations\n2:05 Initial Carcass Assembly\n3:41 Pre Installation Tips\n4:31 #1 Electrical and Plumbing Accommodations\n5:33 #2 Drawer and Door Latch Alignment Made Easy\n8:44 Continuous Grain Obsession\n11:43 Touching Up and Sanding Unique Plywood\n14:29 Human CNC Router Setup\n16:00 Being a Human CNC\n17:09 Flush Trimming Frame Outside\n17:21 Small Cutout Stuff\n18:23 Finished Product\n\nIf you found this entertaining, educational or even enraging, consider buying me a coffee...or a beer;). Please use the link:\nhttps://www.buymeacoffee.com/projectofscience \nThank you for your support!\n\nRelated products and links (Amazon links help me out, thank you!)\n\nSouthco M1-2A-13-5 Drawer Latches I use: https://amzn.to/3Zixlrz\n\nScribe for marking locations through small holes: https://amzn.to/3zKzYYM \n\nBesides a table saw, most of these techniques involve the router. I recommend a small trim or palm router for most van work as you aren’t hogging off thick wood cuts usually. \n\nMakita Router I use: https://amzn.to/40jlScx \nThe Plunge Base is very helpful for lots of projects, and the fixed base is easier to operate with one hand. \n\nGuide Bushing Set: https://amzn.to/41cKiVm \nDepending on your router you may not need the adapter, or might need a different one? This works with my Makita. \n\n1/16” Router Bits:\nFor thin woods I’ve been using this: https://amzn.to/40RHXzn \nFor heavier full depth cuts I’ve had better luck with: https://amzn.to/40JzNsJ \n\nMy favorite Flush Trim Bit: https://amzn.to/3Km2HrR \nAlmost any will do though. Pay attention if you need top or bottom bearing, or both like this one. \n\nCorner Radius Drawing Templates: https://amzn.to/40I9eEN", "Building a Lightweight Van Conversion Kitchen Cabinet", 10, 1146, false, "ilCfLkSM-jU", "https://www.youtube.com/watch?v=ilCfLkSM-jU", "/downloads/Vanlife/2023-04-08 Building a Lightweight Van Conversion Kitchen Cabinet/Building a Lightweight Van Conversion Kitchen Cabinet [ilCfLkSM-jU].mp4", false, ~U[2023-04-08 16:00:34Z]] 11:05:34.163 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.163 [debug] QUERY OK source="media_items" db=0.3ms 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[2020-11-27 17:00:04Z], 10] 11:05:34.165 [debug] QUERY OK source="media_items" db=1.3ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Brandon sharing yet another stealth van build with us. He has spent years fitting so much into a very small space.\n\n**My Information and Products I use:**\nBrand Deals/Business Inquiries: brandon@thestation.io\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nPartnerships/Affiliates I personally work with:\nLooking for great batteries? These are the batteries in my Van and Jeep AND now new TINY HOME!\nReLion Battery:\nhttp://relionbattery.com?aff=6\nRelion Battery Discount Code: Ghost5\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nEpoxy Used for Woodworking and any Finishing\nhttp://www.totalboat.com/\nDiscount Code: tbghost - for 10% off first order\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nVanLife Academy from Project VanLife:\nhttps://toccighost--projectvanlife.thrivecart.com/van-life-academy/\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products (used in 2nd van and new Tiny Home build):\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nGuzzle H2O Water Filtration system:\nhttps://www.guzzleh2o.com?ref=6\nI use the portable one and the built-in one!\n\nLion Energy:\nhttps://lionenergy.com/discount/Ghost15?redirect=%2Fproducts%2Flion-safari-ut-1300%3Fafmc%3D5u\nDiscount Code: Ghost15\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "STEALTH Luxury Van Tour - Expandable Recirculating Shower, A/C, 48v Power", "1b982689-cef3-4db4-b827-3fcc765cd8a1", 10, [], 1799, false, "63VaJIXP874", "https://www.youtube.com/watch?v=63VaJIXP874", 80, "/downloads/Vanlife/2020-11-27 STEALTH Luxury Van Tour - Expandable Recirculating Shower, A⧸C, 48v Power/STEALTH Luxury Van Tour - Expandable Recirculating Shower, A⧸C, 48v Power [63VaJIXP874].mp4", false, false, false, 1, ~U[2020-11-27 17:00:04Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Brandon sharing yet another stealth van build with us. He has spent years fitting so much into a very small space.\n\n**My Information and Products I use:**\nBrand Deals/Business Inquiries: brandon@thestation.io\nComedy Channel: https://www.youtube.com/jarrodtoccicomedy\nWebsite: https://www.jarrodtocci.com\nConsulting: https://jarrodtocci.com/contact/\nMerch: https://www.jarrodtocci.com/shop\n https://teespring.com/stores/jarrodtocci\nInstagram: https://www.instagram.com/jarrodtocci/ (@jarrodtocci)\nFacebook: https://www.facebook.com/JarrodGHOST\nPinterest: www.pinterest.com/jarrodtocci/\nPodcast: https://anchor.fm/dontbeachump\n\nPartnerships/Affiliates I personally work with:\nLooking for great batteries? These are the batteries in my Van and Jeep AND now new TINY HOME!\nReLion Battery:\nhttp://relionbattery.com?aff=6\nRelion Battery Discount Code: Ghost5\n\nHART Tools:\nhttps://www.harttools.com/be-free?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\nRiding Lawnmower:\nhttps://www.harttools.com/products/lawn-and-garden/mowers/30-lithium-ion-riding-mower?utm_source=affiliate&utm_medium=opeevent&utm_campaign=jarrodtocci\n\nEpoxy Used for Woodworking and any Finishing\nhttp://www.totalboat.com/\nDiscount Code: tbghost - for 10% off first order\n\nBig Battery(dot)com:\nClick the link and apply code to get your discount!\nhttps://bigbattery.com/?ref=230\nCode: TOCCI10\n\nHavelock Wool Insulation:\nhttp://havelockwool.refr.cc/jarrodt\n\nVanLife Academy from Project VanLife:\nhttps://toccighost--projectvanlife.thrivecart.com/van-life-academy/\n\nPortable Diesel Heater and Planer Heater. Also a ton of other useful products:\nhttps://expeditionupfitter.com/?ref=jarrodtocci\n\nVan Life Tech Products (used in 2nd van and new Tiny Home build):\nVerified DIY Package Link (that allows payments):\nhttps://vanlifetech.samcart.com/products/van-life-tech--roman-holiday--diy-package--payment-plan-tocci/\n12PK of VLT Beer (Shipper Pack):\nhttps://vanlifetech.samcart.com/products/vlt-down-by-the-river-ipa-12-pk-shipper-tocci\nRogue VLT System:\nhttps://vanlifetech.samcart.com/products/diy-rogue-tocci\n\nGuzzle H2O Water Filtration system:\nhttps://www.guzzleh2o.com?ref=6\nI use the portable one and the built-in one!\n\nLion Energy:\nhttps://lionenergy.com/discount/Ghost15?redirect=%2Fproducts%2Flion-safari-ut-1300%3Fafmc%3D5u\nDiscount Code: Ghost15\n\nDonations here to help with gas, taking trips, stand up, or just because I’m lovable.\nhttps://www.paypal.me/JarrodTocci\n\nDISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This helps me grow as a business and my brand, so I can continue to bring you the best content possible. Thank you for all your support!", "STEALTH Luxury Van Tour - Expandable Recirculating Shower, A/C, 48v Power", 10, 1799, false, "63VaJIXP874", "https://www.youtube.com/watch?v=63VaJIXP874", "/downloads/Vanlife/2020-11-27 STEALTH Luxury Van Tour - Expandable Recirculating Shower, A⧸C, 48v Power/STEALTH Luxury Van Tour - Expandable Recirculating Shower, A⧸C, 48v Power [63VaJIXP874].mp4", false, ~U[2020-11-27 17:00:04Z]] 11:05:34.165 [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" = ?) [10] 11:05:34.166 [debug] QUERY OK source="media_items" db=0.3ms 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-02-12 15:00:54Z], 10] 11:05:34.167 [debug] QUERY OK source="media_items" db=0.7ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I show you how to build lightweight, strong upper cabinets for your camper van conversion. This simple design is perfect for DIY builders. I’ll walk you through every step, from framing to finish, and share tips to make sure your cabinets are sturdy, safe, and space-efficient. If you want a clean, professional look without the stress, this cabinet design is for you. Plans available if you want to follow along!\n\nPart two covering the doors, hinges, and latch installation can be found here:\nhttps://youtu.be/lZxcJ2V7m8o\n\nDownloadable cabinet build plans available here: \nhttps://www.mosermakes.com/articles/campervan-uppercabinet\n\nUseful Tools!\nCompass and Scriber: https://amzn.to/3Qf5Cpz\nCabinet jacks (install support stands): https://amzn.to/3Qnhg1K\nPocket hole jig: https://amzn.to/4jZDXGX\nPocket hole covers: https://amzn.to/4k3rhP9\n(Amazon links are affiliate links which I earn a small commission from - thanks for your support!)\n\nChapters:\n00:00 Overview\n04:31 Template vertical pieces\n07:26 Cutout pieces\n09:35 Assembly\n12:35 Mounting\n\n#diycamper #vanlife #vanconversion", "My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans)", "316ca25e-c275-494e-afad-2ebd6887df02", 10, [], 1096, false, "h3rZpJy5zbo", "https://www.youtube.com/watch?v=h3rZpJy5zbo", 81, "/downloads/Vanlife/2025-02-12 My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans)/My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans) [h3rZpJy5zbo].mkv", false, false, false, 1, ~U[2025-02-12 15:00:54Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "In this video, I show you how to build lightweight, strong upper cabinets for your camper van conversion. This simple design is perfect for DIY builders. I’ll walk you through every step, from framing to finish, and share tips to make sure your cabinets are sturdy, safe, and space-efficient. If you want a clean, professional look without the stress, this cabinet design is for you. Plans available if you want to follow along!\n\nPart two covering the doors, hinges, and latch installation can be found here:\nhttps://youtu.be/lZxcJ2V7m8o\n\nDownloadable cabinet build plans available here: \nhttps://www.mosermakes.com/articles/campervan-uppercabinet\n\nUseful Tools!\nCompass and Scriber: https://amzn.to/3Qf5Cpz\nCabinet jacks (install support stands): https://amzn.to/3Qnhg1K\nPocket hole jig: https://amzn.to/4jZDXGX\nPocket hole covers: https://amzn.to/4k3rhP9\n(Amazon links are affiliate links which I earn a small commission from - thanks for your support!)\n\nChapters:\n00:00 Overview\n04:31 Template vertical pieces\n07:26 Cutout pieces\n09:35 Assembly\n12:35 Mounting\n\n#diycamper #vanlife #vanconversion", "My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans)", 10, 1096, false, "h3rZpJy5zbo", "https://www.youtube.com/watch?v=h3rZpJy5zbo", "/downloads/Vanlife/2025-02-12 My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans)/My Favorite Way to Build Upper Cabinets (Full Tutorial with Plans) [h3rZpJy5zbo].mkv", false, ~U[2025-02-12 15:00:54Z]] 11:05:34.167 [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" = ?) [10] 11:05:34.168 [debug] QUERY OK source="media_items" db=0.3ms 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[2023-04-02 11:00:42Z], 10] 11:05:34.173 [debug] QUERY OK source="media_items" db=4.5ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This video will teach you how to build a 'kitchen' cabinet for a DIY camper van conversion with a sink, an induction stove top, and drawers for storage.\n\nIn this van kitchen build, we were able to construct the cabinets outside of the van, install the sink, stove top, and fridge, all on our workbench before moving the entire DIY campervan kitchen into place. We secured our kitchen cabinet to the van using the L-track on the walls and on the floors. We are so happy with how this kitchen build turned out and even found some creative solutions for extra storage around our sink drain! \n\n➤Fridge: https://sovrn.co/1nwiv02\n➤Sink: https://amzn.to/40yFwS9\n➤Stove: https://amzn.to/3KsmxDg\n➤Plans: https://shop.explorist.life/shop/all-products/plans-and-diagrams/3d-files-project-templates/camper-van-cabinetry-plans-full-set/\n\n➤Shop the EXPLORIST.life Store: shop.explorist.life\n➤Shop Battle Born Batteries: http://battlebornbatteries.com?afmc=explorist_bb67\n➤Binge the Transit Van Build: https://www.youtube.com/playlist?list=PLmvhcyi4n0TVfA4XCYJBkzfUXunSON1zX\n\nHere are some additional resources that you may find helpful with planning and installing your DIY Camper:\n\n➤DIY Sprinter Camper Van Electrical Install - Full Tutorial: https://www.youtube.com/watch?v=01F4QDVJUq0&t=1897s\n➤DIY Camper Solar Wiring Diagrams: https://www.explorist.life/solarwiringdiagrams\n➤How to Perform a Power Audit: https://www.youtube.com/watch?v=a406IxiU-Xg&list=PLmvhcyi4n0TU6HlMaQiCUwC20DBlyv6s_&index=3\n➤Basic Parts & Components of an Electrical System: https://www.youtube.com/watch?v=xuZg4NasCVw&list=PLmvhcyi4n0TU6HlMaQiCUwC20DBlyv6s_&index=1\n➤How to Cut Wire: https://www.explorist.life/how-to-cut-wire/\n➤How to Strip Wire: https://www.youtube.com/watch?v=ca45dL2X4SM&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=10\n➤How to Crimp Wire: https://www.youtube.com/watch?v=JmiX2XW48F8&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=9\n➤How to Make MC4 Connectors: https://www.youtube.com/watch?v=YFAKK491wj0&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=7\n➤How to Wire Solar Panels in Series-Parallel: https://www.youtube.com/watch?v=b2H8vpj8rQg&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=3\n➤How to Crimp Wire Ferrules: https://www.youtube.com/watch?v=h8CHAVmpPFw&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=8\n➤How to Wire an AC/DC Breaker/Fuse Box: https://www.explorist.life/how-to-wire-a-power-distribution-panel/\n00:00 Introduction\n00:10 Cutting/Assembly\n01:31 Edge Banding/Finishing\n01:53 Drawers\n03:22 Latches\n04:12 Under Cabinet Lighting\n05:27 Back Panel/Door\n06:13 Refrigerator Vent\n06:26 Butcher Block Countertop\n07:04 Drain Install, Sink Assembly\n07:33 Brackets\n07:52 Extend Refrigerator Wires\n08:15 120V Outlet\n08:48 Attach Sink\n09:04 Attach Countertop\n09:30 Fasten to L Track\n09:41 Install Induction Cooktop/Complete Wiring\n10:30 Install Grey Water Tank\n10:42 Outro", "DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces", "379b9be8-e0d3-45d1-8472-f6e39479f7cc", 10, [], 680, false, "zNpmj3ChmJ8", "https://www.youtube.com/watch?v=zNpmj3ChmJ8", 82, "/downloads/Vanlife/2023-04-02 DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces/DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces [zNpmj3ChmJ8].mkv", false, false, false, 1, ~U[2023-04-02 11:00:42Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "This video will teach you how to build a 'kitchen' cabinet for a DIY camper van conversion with a sink, an induction stove top, and drawers for storage.\n\nIn this van kitchen build, we were able to construct the cabinets outside of the van, install the sink, stove top, and fridge, all on our workbench before moving the entire DIY campervan kitchen into place. We secured our kitchen cabinet to the van using the L-track on the walls and on the floors. We are so happy with how this kitchen build turned out and even found some creative solutions for extra storage around our sink drain! \n\n➤Fridge: https://sovrn.co/1nwiv02\n➤Sink: https://amzn.to/40yFwS9\n➤Stove: https://amzn.to/3KsmxDg\n➤Plans: https://shop.explorist.life/shop/all-products/plans-and-diagrams/3d-files-project-templates/camper-van-cabinetry-plans-full-set/\n\n➤Shop the EXPLORIST.life Store: shop.explorist.life\n➤Shop Battle Born Batteries: http://battlebornbatteries.com?afmc=explorist_bb67\n➤Binge the Transit Van Build: https://www.youtube.com/playlist?list=PLmvhcyi4n0TVfA4XCYJBkzfUXunSON1zX\n\nHere are some additional resources that you may find helpful with planning and installing your DIY Camper:\n\n➤DIY Sprinter Camper Van Electrical Install - Full Tutorial: https://www.youtube.com/watch?v=01F4QDVJUq0&t=1897s\n➤DIY Camper Solar Wiring Diagrams: https://www.explorist.life/solarwiringdiagrams\n➤How to Perform a Power Audit: https://www.youtube.com/watch?v=a406IxiU-Xg&list=PLmvhcyi4n0TU6HlMaQiCUwC20DBlyv6s_&index=3\n➤Basic Parts & Components of an Electrical System: https://www.youtube.com/watch?v=xuZg4NasCVw&list=PLmvhcyi4n0TU6HlMaQiCUwC20DBlyv6s_&index=1\n➤How to Cut Wire: https://www.explorist.life/how-to-cut-wire/\n➤How to Strip Wire: https://www.youtube.com/watch?v=ca45dL2X4SM&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=10\n➤How to Crimp Wire: https://www.youtube.com/watch?v=JmiX2XW48F8&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=9\n➤How to Make MC4 Connectors: https://www.youtube.com/watch?v=YFAKK491wj0&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=7\n➤How to Wire Solar Panels in Series-Parallel: https://www.youtube.com/watch?v=b2H8vpj8rQg&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=3\n➤How to Crimp Wire Ferrules: https://www.youtube.com/watch?v=h8CHAVmpPFw&list=PLmvhcyi4n0TVgcroqXl5QvJM0afUes_zX&index=8\n➤How to Wire an AC/DC Breaker/Fuse Box: https://www.explorist.life/how-to-wire-a-power-distribution-panel/\n00:00 Introduction\n00:10 Cutting/Assembly\n01:31 Edge Banding/Finishing\n01:53 Drawers\n03:22 Latches\n04:12 Under Cabinet Lighting\n05:27 Back Panel/Door\n06:13 Refrigerator Vent\n06:26 Butcher Block Countertop\n07:04 Drain Install, Sink Assembly\n07:33 Brackets\n07:52 Extend Refrigerator Wires\n08:15 120V Outlet\n08:48 Attach Sink\n09:04 Attach Countertop\n09:30 Fasten to L Track\n09:41 Install Induction Cooktop/Complete Wiring\n10:30 Install Grey Water Tank\n10:42 Outro", "DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces", 10, 680, false, "zNpmj3ChmJ8", "https://www.youtube.com/watch?v=zNpmj3ChmJ8", "/downloads/Vanlife/2023-04-02 DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces/DIY CAMPER VAN KITCHEN BUILD: The Perfect Solution for Small Spaces [zNpmj3ChmJ8].mkv", false, ~U[2023-04-02 11:00:42Z]] 11:05:34.173 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms 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" = ?) [10] 11:05:34.174 [debug] QUERY OK source="media_items" db=0.3ms idle=6.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-26 16:07:01Z], 10] 11:05:34.175 [debug] QUERY OK source="media_items" db=0.9ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📽️ WHAT TO WATCH NEXT\nHow to Build Base Cabinets - https://youtu.be/7KkvrgMk8Us\nHow to Build Wall Cabinets - https://youtu.be/SMQVklOfig4\nTall Pantry Storage Cabinet - https://youtu.be/zL4TgtY_Nrc\nKitchen Island Pt 1 - https://youtu.be/eiInNHG2QBg\nJason Bent's LR32 System Video - https://youtu.be/EO62T1LHdNA\n\n✅️ CABINET PROJECT PLANS: \nBase Cabinet Plans - https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinet Plans - https://mwawoodworks.com/product/upper-cabinet-plans/\nThree Drawer Base Cabinet Plans - https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nPantry Storage Cabinet Plans - https://mwawoodworks.com/product/tall-pantry-storage-cabinet-plans/\nKitchen Island Plans - https://mwawoodworks.com/product/kitchen-island-plans/\nThe Cabinet Plan Bundle (save 50%) : https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nThe Whole Enchilada Plan Bundle (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO:\n►Spectape Two Sided Tape - https://amzn.to/3IxTMma\n►True Position Cabinet Hardware Jig - https://amzn.to/3KDHjjK\n►Kreg Shelf Pin Jig (new model) - https://amzn.to/3kwugpG\n►Bangood Pocket Hole Jig - https://amzn.to/3Zonuki\n►Kreg Pocket Hole Jig (new model) - https://amzn.to/41qvovu\n►Castle TSM 12 Pocket Hole Cutter - https://castleusa.com/products/tsm-12-benchtop-pocket-cutter-machine.html\n►Festool LR32 System - https://amzn.to/3KxTmPw\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n---------------------------------------------------------------------------------------------------------------------------------------------\n\n⏱️ Chapters\n00:00 Intro\n00:30 Best Cabinet Plywood\n02:23 Drawer Slide Install Hack\n03:34 Two Sided Tape is KING\n04:35 Sizing Your Cabinets\n06:30 Using Relative Measurements\n09:23 Drawer Front Install Trick\n10:37 True Position Hardware Jig\n11:17 Pocket Holes Don't Suck\n12:48 Pocket Hole Jigs\n14:15 Sizing and Spacing Drawers\n15:26 Shelf Pin Jigs \n\nCabinet Making Secrets\n#cabinets#woodworkingproject#diyprojects", "10 Tips and Tools for Building Better Cabinets", "3154f9d4-bf5b-4210-bac1-aec66cebd6dd", 10, [], 888, false, "Vey9ZclCFMI", "https://www.youtube.com/watch?v=Vey9ZclCFMI", 83, "/downloads/Vanlife/2023-02-26 10 Tips and Tools for Building Better Cabinets/10 Tips and Tools for Building Better Cabinets [Vey9ZclCFMI].mp4", false, false, false, 1, ~U[2023-02-26 16:07:01Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "📽️ WHAT TO WATCH NEXT\nHow to Build Base Cabinets - https://youtu.be/7KkvrgMk8Us\nHow to Build Wall Cabinets - https://youtu.be/SMQVklOfig4\nTall Pantry Storage Cabinet - https://youtu.be/zL4TgtY_Nrc\nKitchen Island Pt 1 - https://youtu.be/eiInNHG2QBg\nJason Bent's LR32 System Video - https://youtu.be/EO62T1LHdNA\n\n✅️ CABINET PROJECT PLANS: \nBase Cabinet Plans - https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinet Plans - https://mwawoodworks.com/product/upper-cabinet-plans/\nThree Drawer Base Cabinet Plans - https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nPantry Storage Cabinet Plans - https://mwawoodworks.com/product/tall-pantry-storage-cabinet-plans/\nKitchen Island Plans - https://mwawoodworks.com/product/kitchen-island-plans/\nThe Cabinet Plan Bundle (save 50%) : https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nThe Whole Enchilada Plan Bundle (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO:\n►Spectape Two Sided Tape - https://amzn.to/3IxTMma\n►True Position Cabinet Hardware Jig - https://amzn.to/3KDHjjK\n►Kreg Shelf Pin Jig (new model) - https://amzn.to/3kwugpG\n►Bangood Pocket Hole Jig - https://amzn.to/3Zonuki\n►Kreg Pocket Hole Jig (new model) - https://amzn.to/41qvovu\n►Castle TSM 12 Pocket Hole Cutter - https://castleusa.com/products/tsm-12-benchtop-pocket-cutter-machine.html\n►Festool LR32 System - https://amzn.to/3KxTmPw\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n---------------------------------------------------------------------------------------------------------------------------------------------\n\n⏱️ Chapters\n00:00 Intro\n00:30 Best Cabinet Plywood\n02:23 Drawer Slide Install Hack\n03:34 Two Sided Tape is KING\n04:35 Sizing Your Cabinets\n06:30 Using Relative Measurements\n09:23 Drawer Front Install Trick\n10:37 True Position Hardware Jig\n11:17 Pocket Holes Don't Suck\n12:48 Pocket Hole Jigs\n14:15 Sizing and Spacing Drawers\n15:26 Shelf Pin Jigs \n\nCabinet Making Secrets\n#cabinets#woodworkingproject#diyprojects", "10 Tips and Tools for Building Better Cabinets", 10, 888, false, "Vey9ZclCFMI", "https://www.youtube.com/watch?v=Vey9ZclCFMI", "/downloads/Vanlife/2023-02-26 10 Tips and Tools for Building Better Cabinets/10 Tips and Tools for Building Better Cabinets [Vey9ZclCFMI].mp4", false, ~U[2023-02-26 16:07:01Z]] 11:05:34.176 [debug] QUERY OK source="sources" db=0.1ms idle=7.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.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-09-29 14:26:44Z], 10] 11:05:34.178 [debug] QUERY OK source="media_items" db=1.2ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This video is everything I know about building, sizing, spacing and installing drawers! \nWHAT NEXT?\n✅️Learn how to build cabinets - https://www.youtube.com/watch?v=7KkvrgMk8Us&list=PLTGU37t015kng61D5cjPei-26UFz6VXOx\n✅️Join my Patreon community - https://patreon.com/MWAWoodworks \n✅️ CABINET PROJECT PLANS\nCabinet Plan Bundle - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nBase Cabinets: https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinets - https://mwawoodworks.com/product/upper-cabinet-plans/ \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nTall Pantry Cabinet- https://mwawoodworks.com/product/tall-pantry-storage-cabinet/\nKitchen Island - https://mwawoodworks.com/product/kitchen-island/\nTall Storage Cabinet - https://mwawoodworks.com/product/tall-storage-cabinet/\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO\nJessEm Dowelling Jig - https://amzn.to/3XMxeFQ\nDovetail Jig - https://amzn.to/3YcteQN\nMy new favorite Pocket Hole Jig - https://amzn.to/46uqF0f\nBox Joint Jig - https://amzn.to/3N4tpHe\nMy favorite persuader (mallet) - https://amzn.to/3zApkrk\nLock Miter Router Bit - https://amzn.to/3N5o96s\nLock Miter Setup Jig - https://amzn.to/3ZHGUnW\nLocking Rabbet Router Bit - https://amzn.to/3N1Yrzo\nEuro glides - https://amzn.to/4eIrcNC\nSide mount Slides - https://amzn.to/3TLkoqi\nUnder mount Slides - https://amzn.to/3N1sffN\nDeWalt Cordless Palm Router - https://amzn.to/3zC8oR8 \nMilwaukee Detail Sander - https://amzn.to/3XYMjWm\nFestool Domino - https://amzn.to/4exVi6m\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use *Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n📽️ Referenced Videos\nHow to set up lock miter bits - https://www.youtube.com/watch?v=L_rJhz9C3wk\n\n✅️ Other Affiliate Partners \nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq \nTSO Products - https://tsoproducts.com/?ref=MWAWW \nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: https://patreon.com/MWAWoodworks \nGet Project Plans: https://bit.ly/download-project-plans \nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ MWA WOODWORKS ON SOCIAL \nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/\n\nHow to Build Drawers \n⏱️ Chapters\n00:00 Intro\n00:20 Drawer construction\n03:05 Joinery options\n10:58 Choosing the right slides\n15:04 Best way to install slides\n16:12 How to size drawers\n18:27 Proper drawer spacing\n\n\n#cabinets #diy #woodworkingproject", "I don't get why people think drawers are hard", "823628db-5841-4394-bb7b-a57dc3d89cd9", 10, [], 1204, false, "igoUKsvQqfI", "https://www.youtube.com/watch?v=igoUKsvQqfI", 84, "/downloads/Vanlife/2024-09-29 I don't get why people think drawers are hard/I don't get why people think drawers are hard [igoUKsvQqfI].mkv", false, false, false, 1, ~U[2024-09-29 14:26:44Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "This video is everything I know about building, sizing, spacing and installing drawers! \nWHAT NEXT?\n✅️Learn how to build cabinets - https://www.youtube.com/watch?v=7KkvrgMk8Us&list=PLTGU37t015kng61D5cjPei-26UFz6VXOx\n✅️Join my Patreon community - https://patreon.com/MWAWoodworks \n✅️ CABINET PROJECT PLANS\nCabinet Plan Bundle - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nBase Cabinets: https://mwawoodworks.com/product/base-cabinet-plans/\nUpper Cabinets - https://mwawoodworks.com/product/upper-cabinet-plans/ \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nTall Pantry Cabinet- https://mwawoodworks.com/product/tall-pantry-storage-cabinet/\nKitchen Island - https://mwawoodworks.com/product/kitchen-island/\nTall Storage Cabinet - https://mwawoodworks.com/product/tall-storage-cabinet/\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO\nJessEm Dowelling Jig - https://amzn.to/3XMxeFQ\nDovetail Jig - https://amzn.to/3YcteQN\nMy new favorite Pocket Hole Jig - https://amzn.to/46uqF0f\nBox Joint Jig - https://amzn.to/3N4tpHe\nMy favorite persuader (mallet) - https://amzn.to/3zApkrk\nLock Miter Router Bit - https://amzn.to/3N5o96s\nLock Miter Setup Jig - https://amzn.to/3ZHGUnW\nLocking Rabbet Router Bit - https://amzn.to/3N1Yrzo\nEuro glides - https://amzn.to/4eIrcNC\nSide mount Slides - https://amzn.to/3TLkoqi\nUnder mount Slides - https://amzn.to/3N1sffN\nDeWalt Cordless Palm Router - https://amzn.to/3zC8oR8 \nMilwaukee Detail Sander - https://amzn.to/3XYMjWm\nFestool Domino - https://amzn.to/4exVi6m\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use *Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n📽️ Referenced Videos\nHow to set up lock miter bits - https://www.youtube.com/watch?v=L_rJhz9C3wk\n\n✅️ Other Affiliate Partners \nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq \nTSO Products - https://tsoproducts.com/?ref=MWAWW \nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: https://patreon.com/MWAWoodworks \nGet Project Plans: https://bit.ly/download-project-plans \nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ MWA WOODWORKS ON SOCIAL \nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/\n\nHow to Build Drawers \n⏱️ Chapters\n00:00 Intro\n00:20 Drawer construction\n03:05 Joinery options\n10:58 Choosing the right slides\n15:04 Best way to install slides\n16:12 How to size drawers\n18:27 Proper drawer spacing\n\n\n#cabinets #diy #woodworkingproject", "I don't get why people think drawers are hard", 10, 1204, false, "igoUKsvQqfI", "https://www.youtube.com/watch?v=igoUKsvQqfI", "/downloads/Vanlife/2024-09-29 I don't get why people think drawers are hard/I don't get why people think drawers are hard [igoUKsvQqfI].mkv", false, ~U[2024-09-29 14:26:44Z]] 11:05:34.179 [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" = ?) [10] 11:05:34.179 [debug] QUERY OK source="media_items" db=0.2ms 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[2022-05-29 15:37:23Z], 10] 11:05:34.180 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅️ TOOLS AND SUPPLIES IN THIS VIDEO:\nCentipede Work Holder - https://bit.ly/bora-centipede\nPlywood Router Bit Set - https://amzn.to/3sj7lxn\nSpectape Two Sided Tape - https://amzn.to/3wleKh4\nTrue Position Tools Cabinet Hardware Jig - https://amzn.to/3g3pgDr\nKreg Pocket Hole Jig - https://amzn.to/2UgpEGU\nMag Switch - https://amzn.to/3sg6M7H\nBessey One Handed Clamps - https://amzn.to/2VWftbp\nSpeed Square - https://amzn.to/3xHGwEl\nFast Setting Wood Glue - https://amzn.to/2VNIaaF\nSet Up Blocks - https://amzn.to/3GsT8U3\nUndermount Drawer Slides - https://amzn.to/3lOkUm6\n\n📽️ WHAT TO WATCH NEXT\nMy Secrets for Cabinet Building - https://youtu.be/Vey9ZclCFMI \nBuilding Upper Cabinets - https://youtu.be/SMQVklOfig4\nHUGE Pantry Cabinets with Pull Out Trays - https://youtu.be/zL4TgtY_Nrc\n\n✅️ GET THE PROJECT PLANS: \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nCabinet Plan Bundle (Save 33%) - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nAll Project Plans Bundled (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n---------------------------------------------------------------------------------------------------------------------------------------------\nCabinets For Storing Larger Items\nLearn how to build a cabinet from start to finish\n\n⏱️ Chapters\n00:00 Intro\n00:28 Cutting Cabinet Parts\n03:13 Assembling a Cabinet Carcass\n06:00 How to Make Drawers\n07:56 How to Make Drawer Fronts\n09:10 How to Make Face Frames\n09:59 Tips For Undermount Drawer Slides\n11:40 Tips For Installing Drawer Fronts\n\n#cabinets#carpentry#woodworking", "I can't believe building custom cabinets was this easy", "035568dc-58ff-4150-a39d-4264bd79b5a2", 10, [], 678, false, "XtfoThdGU2w", "https://www.youtube.com/watch?v=XtfoThdGU2w", 85, "/downloads/Vanlife/2022-05-29 I can't believe building custom cabinets was this easy/I can't believe building custom cabinets was this easy [XtfoThdGU2w].mp4", false, false, false, 1, ~U[2022-05-29 15:37:23Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "✅️ TOOLS AND SUPPLIES IN THIS VIDEO:\nCentipede Work Holder - https://bit.ly/bora-centipede\nPlywood Router Bit Set - https://amzn.to/3sj7lxn\nSpectape Two Sided Tape - https://amzn.to/3wleKh4\nTrue Position Tools Cabinet Hardware Jig - https://amzn.to/3g3pgDr\nKreg Pocket Hole Jig - https://amzn.to/2UgpEGU\nMag Switch - https://amzn.to/3sg6M7H\nBessey One Handed Clamps - https://amzn.to/2VWftbp\nSpeed Square - https://amzn.to/3xHGwEl\nFast Setting Wood Glue - https://amzn.to/2VNIaaF\nSet Up Blocks - https://amzn.to/3GsT8U3\nUndermount Drawer Slides - https://amzn.to/3lOkUm6\n\n📽️ WHAT TO WATCH NEXT\nMy Secrets for Cabinet Building - https://youtu.be/Vey9ZclCFMI \nBuilding Upper Cabinets - https://youtu.be/SMQVklOfig4\nHUGE Pantry Cabinets with Pull Out Trays - https://youtu.be/zL4TgtY_Nrc\n\n✅️ GET THE PROJECT PLANS: \nThree Drawer Cabinet: https://mwawoodworks.com/product/3-drawer-base-cabinet-plans/\nCabinet Plan Bundle (Save 33%) - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nAll Project Plans Bundled (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n---------------------------------------------------------------------------------------------------------------------------------------------\nCabinets For Storing Larger Items\nLearn how to build a cabinet from start to finish\n\n⏱️ Chapters\n00:00 Intro\n00:28 Cutting Cabinet Parts\n03:13 Assembling a Cabinet Carcass\n06:00 How to Make Drawers\n07:56 How to Make Drawer Fronts\n09:10 How to Make Face Frames\n09:59 Tips For Undermount Drawer Slides\n11:40 Tips For Installing Drawer Fronts\n\n#cabinets#carpentry#woodworking", "I can't believe building custom cabinets was this easy", 10, 678, false, "XtfoThdGU2w", "https://www.youtube.com/watch?v=XtfoThdGU2w", "/downloads/Vanlife/2022-05-29 I can't believe building custom cabinets was this easy/I can't believe building custom cabinets was this easy [XtfoThdGU2w].mp4", false, ~U[2022-05-29 15:37:23Z]] 11:05:34.181 [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" = ?) [10] 11:05:34.181 [debug] QUERY OK source="media_items" db=0.3ms 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[2021-01-15 12:00:03Z], 10] 11:05:34.183 [debug] QUERY OK source="media_items" db=1.1ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I get a lot of questions about cabinet and carcass construction and in this series I aim to answer them all, starting here with the most asked question of all; on a wall-hung cabinet, should the top and base sit within or above, the sides?\n\nNote that this video series is all about wall cabinets; see the Base Cabinet Basics series for details on those - https://youtu.be/XQNeiPvEQ1I\n\n\n+++++++++\n\nBecome a 10minuteworkshop Plus member - more details at 10minuteworkshop.com, sign up directly at 10minuteworkshop.plus\n\n**Support 10 Minute Workshop as a YouTube Member** http://bit.ly/10minuteMember\n\n**Support 10 Minute Workshop on Patreon** - http://www.patreon.com/10minuteworkshop\n\n**Please note that I am moving away from the legacy member platforms to concentrate on my own memberships at 10MinuteWorkshop Plus; member benefits at Patreon and YTM will be significantly reduced from October 2022.\n\nSupport the channel directly - http://bit.ly/donate_to_10minuteworkshop\n\n+++++++++\n\nIf you’re looking for a few gift ideas and would like to support the channel then take a look at my Etsy store, my Amazon Affiliate store, or any of the links below.\n\nMy Etsy - http://bit.ly/10minuteShop\n\nAmazon store - http://bit.ly/10minuteworkshop\n\nMy ‘social’ links & contacts in one place - https://www.10minuteworkshop.com/links\n\nFull list of ‘Stuff I use’ at Full list of ‘Stuff I use’ at https://www.10minuteworkshop.com\n\nConnect with me on twitter @10minuteshop\n\nConnect with me on Instagram @10minuteworkshop\n\n+++++++\n\nAs an Amazon Associate, I earn from qualifying purchases made through these links.\n\nWherever possible links are to actual products used, but this is not always possible e.g. some products are not available in the US, so something [similar] has been linked to instead.\n\nAmazon UK - https://www.amazon.co.uk/shop/petermillard1\n\n++++++++\n\nMentioned in this video:-\n\nPlastic packers or 'shims' - http://amzn.to/2vCDN27 (US:http://amzn.to/2vHk4fZ)\n\nPeanut 2 connector system - http://shop.intelligentfixings.com?ref=10minuteworkshop\n\nButtonfix - https://amzn.to/2JIXa35 (US: http://bit.ly/buttonfix_US)\n\nBenchdogs Rail Dogs - http://bit.ly/raildogs\n\nTrend MFT router jig - https://amzn.to/34wSp3b\n\nBenchdogs rail square - https://bit.ly/bench-dogs\n\nFestool TS55 Tracksaw - http://amzn.to/2pGvzDS (US: http://amzn.to/2oOgGhw)\n\nFestool Midi extractor - http://amzn.to/2tCIN3Q (US: http://amzn.to/2rKNIOx)\n\nBessey Duo Klamp - http://amzn.to/2tsSWQs (US:http://amzn.to/2sVaRBH)\n\nHultafors Talmeter tape measure - http://amzn.to/2pHwnbH (US: http://amzn.to/2oqLQc9)\n\nMoldex 6810 in-ear defenders - https://amzn.to/2P2c5nP (US:https://amzn.to/2LgIsye)\n\nMirock square - https://etsy.me/2MC0RT\n\n++++++++\n\nOther useful gear…\n\nFestool MFT - https://amzn.to/2x49HHE (US: https://amzn.to/2J25aKy)\n\nFestool PDC 18/4 - http://amzn.to/2s3J0eq (US: http://amzn.to/2tWUHEL)\n\nFestool Granat abrasive - http://amzn.to/2A3c1vW (US: http://amzn.to/2gPAAUz)\n\nFestool RTS 400 - http://amzn.to/2x6zGZW (US: http://amzn.to/2i84yXn)\n\nSpax screws - http://amzn.to/2oYWydc (US: http://amzn.to/2oOjkDT)\n\nFestool ETS 150/5 - http://amzn.to/2sapsq9 (US: http://amzn.to/2ssbZgq)\n\nFestool CTL Sys - http://amzn.to/2sKa2t3 (US: http://amzn.to/2tCvVdZ)\n\nFestool CTL SYS Bags - https://amzn.to/2G9eFVd (US: https://amzn.to/2GduBpo)\n\nTrend Air Stealth Facemask - https://amzn.to/2zah0P6 (US: https://amzn.to/2T5ww6X)\n\nBahco 6” combi square - http://amzn.to/2oumhX4 (US: http://amzn.to/2ouSg9k)\n\nSilicone brush set - http://amzn.to/2guo6Sm (US: http://amzn.to/2yEWbZI)\n\nSilicone brush (single) - http://amzn.to/2l5rNTD (US: http://amzn.to/2zqFaQl)\n\nPolyvine PolyTen PVA - http://amzn.to/2svT03N (US: http://amzn.to/2rmHYL3)", "Cabinetry Basics Part 1 [video 435]", "6aa90233-c566-498e-8420-e6dab6919f4e", 10, [], 499, false, "3N_T-YpkBCg", "https://www.youtube.com/watch?v=3N_T-YpkBCg", 86, "/downloads/Vanlife/2021-01-15 Cabinetry Basics Part 1 [video 435]/Cabinetry Basics Part 1 [video 435] [3N_T-YpkBCg].mkv", false, false, false, 1, ~U[2021-01-15 12:00:03Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "I get a lot of questions about cabinet and carcass construction and in this series I aim to answer them all, starting here with the most asked question of all; on a wall-hung cabinet, should the top and base sit within or above, the sides?\n\nNote that this video series is all about wall cabinets; see the Base Cabinet Basics series for details on those - https://youtu.be/XQNeiPvEQ1I\n\n\n+++++++++\n\nBecome a 10minuteworkshop Plus member - more details at 10minuteworkshop.com, sign up directly at 10minuteworkshop.plus\n\n**Support 10 Minute Workshop as a YouTube Member** http://bit.ly/10minuteMember\n\n**Support 10 Minute Workshop on Patreon** - http://www.patreon.com/10minuteworkshop\n\n**Please note that I am moving away from the legacy member platforms to concentrate on my own memberships at 10MinuteWorkshop Plus; member benefits at Patreon and YTM will be significantly reduced from October 2022.\n\nSupport the channel directly - http://bit.ly/donate_to_10minuteworkshop\n\n+++++++++\n\nIf you’re looking for a few gift ideas and would like to support the channel then take a look at my Etsy store, my Amazon Affiliate store, or any of the links below.\n\nMy Etsy - http://bit.ly/10minuteShop\n\nAmazon store - http://bit.ly/10minuteworkshop\n\nMy ‘social’ links & contacts in one place - https://www.10minuteworkshop.com/links\n\nFull list of ‘Stuff I use’ at Full list of ‘Stuff I use’ at https://www.10minuteworkshop.com\n\nConnect with me on twitter @10minuteshop\n\nConnect with me on Instagram @10minuteworkshop\n\n+++++++\n\nAs an Amazon Associate, I earn from qualifying purchases made through these links.\n\nWherever possible links are to actual products used, but this is not always possible e.g. some products are not available in the US, so something [similar] has been linked to instead.\n\nAmazon UK - https://www.amazon.co.uk/shop/petermillard1\n\n++++++++\n\nMentioned in this video:-\n\nPlastic packers or 'shims' - http://amzn.to/2vCDN27 (US:http://amzn.to/2vHk4fZ)\n\nPeanut 2 connector system - http://shop.intelligentfixings.com?ref=10minuteworkshop\n\nButtonfix - https://amzn.to/2JIXa35 (US: http://bit.ly/buttonfix_US)\n\nBenchdogs Rail Dogs - http://bit.ly/raildogs\n\nTrend MFT router jig - https://amzn.to/34wSp3b\n\nBenchdogs rail square - https://bit.ly/bench-dogs\n\nFestool TS55 Tracksaw - http://amzn.to/2pGvzDS (US: http://amzn.to/2oOgGhw)\n\nFestool Midi extractor - http://amzn.to/2tCIN3Q (US: http://amzn.to/2rKNIOx)\n\nBessey Duo Klamp - http://amzn.to/2tsSWQs (US:http://amzn.to/2sVaRBH)\n\nHultafors Talmeter tape measure - http://amzn.to/2pHwnbH (US: http://amzn.to/2oqLQc9)\n\nMoldex 6810 in-ear defenders - https://amzn.to/2P2c5nP (US:https://amzn.to/2LgIsye)\n\nMirock square - https://etsy.me/2MC0RT\n\n++++++++\n\nOther useful gear…\n\nFestool MFT - https://amzn.to/2x49HHE (US: https://amzn.to/2J25aKy)\n\nFestool PDC 18/4 - http://amzn.to/2s3J0eq (US: http://amzn.to/2tWUHEL)\n\nFestool Granat abrasive - http://amzn.to/2A3c1vW (US: http://amzn.to/2gPAAUz)\n\nFestool RTS 400 - http://amzn.to/2x6zGZW (US: http://amzn.to/2i84yXn)\n\nSpax screws - http://amzn.to/2oYWydc (US: http://amzn.to/2oOjkDT) (truncated) 11:05:34.183 [debug] QUERY OK source="sources" db=0.1ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.184 [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[2022-12-11 16:00:43Z], 10] 11:05:34.185 [debug] QUERY OK source="media_items" db=0.9ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅️ TOOLS/SUPPLIES IN THIS VIDEO\nAmana Countersink Bit - https://amzn.to/3VCZUib\nPica Dry Mechanical Pencil - https://amzn.to/3VfMwAJ\nPentel Graph Gear 1000 - https://amzn.to/3gDM5Bf\nFastCap Track Racks - https://tsoproducts.com/organization-storage/fastcap-track-rack/?ref=MWAWW\nMagenetizer/Demagnetizer - https://amzn.to/3gGcK04\nThread Checker (metric/inch) - https://amzn.to/3gNlMID\nFastCap Lefty/Rigty (Inch) tape measure – https://amzn.to/3VvuIln\nFastCap Lefty/Righty (Metric) tape measure - https://amzn.to/3UnZbjW\nFastCap 12’ (Metric/Inch) tape measure – https://amzn.to/3ASi33m\nFastCap Flatback 12’ (Metric/Inch) tape measure – https://amzn.to/3VGN0l6\nVix Bit Self Centering Drill Bit Set - https://amzn.to/3XD6o2j\n1-2-3 Blocks - https://amzn.to/3UfYn08\niGaging Set Up Blocks (set) - https://amzn.to/3F9LcJW\nStanley 12’ Tape measure – https://amzn.to/3uenR3n\nFastCap Quad Edge Banding Trimmer - https://amzn.to/3gLgUnw\nWera Ratcheting Screwdriver - https://amzn.to/3u8BwJt\n\n📽️ WHAT TO WATCH NEXT\nTools new woodworkers don't know about - https://youtu.be/BXoZUlHe2lo\nI won't work without these cheap tools - https://youtu.be/RWaHLxka7so\n10 things you'll always find in my workshop - https://youtu.be/bxVZMuPU-A0\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n\nCheap Tools I like and LOVE\n#tools #woodworking #workshop", "Why doesn't every woodworker have these cheap tools?", "e053726a-81f3-4019-a47d-08f18ec4c2df", 10, [], 1002, false, "IerByTCZUx4", "https://www.youtube.com/watch?v=IerByTCZUx4", 87, "/downloads/Vanlife/2022-12-11 Why doesn't every woodworker have these cheap tools?/Why doesn't every woodworker have these cheap tools? [IerByTCZUx4].mp4", false, false, false, 1, ~U[2022-12-11 16:00:43Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "✅️ TOOLS/SUPPLIES IN THIS VIDEO\nAmana Countersink Bit - https://amzn.to/3VCZUib\nPica Dry Mechanical Pencil - https://amzn.to/3VfMwAJ\nPentel Graph Gear 1000 - https://amzn.to/3gDM5Bf\nFastCap Track Racks - https://tsoproducts.com/organization-storage/fastcap-track-rack/?ref=MWAWW\nMagenetizer/Demagnetizer - https://amzn.to/3gGcK04\nThread Checker (metric/inch) - https://amzn.to/3gNlMID\nFastCap Lefty/Rigty (Inch) tape measure – https://amzn.to/3VvuIln\nFastCap Lefty/Righty (Metric) tape measure - https://amzn.to/3UnZbjW\nFastCap 12’ (Metric/Inch) tape measure – https://amzn.to/3ASi33m\nFastCap Flatback 12’ (Metric/Inch) tape measure – https://amzn.to/3VGN0l6\nVix Bit Self Centering Drill Bit Set - https://amzn.to/3XD6o2j\n1-2-3 Blocks - https://amzn.to/3UfYn08\niGaging Set Up Blocks (set) - https://amzn.to/3F9LcJW\nStanley 12’ Tape measure – https://amzn.to/3uenR3n\nFastCap Quad Edge Banding Trimmer - https://amzn.to/3gLgUnw\nWera Ratcheting Screwdriver - https://amzn.to/3u8BwJt\n\n📽️ WHAT TO WATCH NEXT\nTools new woodworkers don't know about - https://youtu.be/BXoZUlHe2lo\nI won't work without these cheap tools - https://youtu.be/RWaHLxka7so\n10 things you'll always find in my workshop - https://youtu.be/bxVZMuPU-A0\n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: patreon.com/MWAWoodworks\nGet Project Plans: https://bit.ly/download-project-plans\nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use\n*Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ Other Affiliate Partners\nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq\nTSO Products - https://tsoproducts.com/?ref=MWAWW\nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ MWA WOODWORKS ON SOCIAL\nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/ \n\n\nCheap Tools I like and LOVE\n#tools #woodworking #workshop", "Why doesn't every woodworker have these cheap tools?", 10, 1002, false, "IerByTCZUx4", "https://www.youtube.com/watch?v=IerByTCZUx4", "/downloads/Vanlife/2022-12-11 Why doesn't every woodworker have these cheap tools?/Why doesn't every woodworker have these cheap tools? [IerByTCZUx4].mp4", false, ~U[2022-12-11 16:00:43Z]] 11:05:34.186 [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" = ?) [10] 11:05:34.186 [debug] QUERY OK source="media_items" db=0.3ms 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-30 15:04:48Z], 10] 11:05:34.203 [debug] QUERY OK source="media_items" db=15.9ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📽️ WHAT TO WATCH NEXT \nMy Secrets for Cabinet Building - https://youtu.be/Vey9ZclCFMI \nTall Pantry Storage Cabinet - https://youtu.be/8SiuMTZJDqI \nOrganize any Workspace - https://youtu.be/G8HulaZXlS0\n\n✅️ PROJECT PLANS:\n6 ft long cabinet (from this video) - https://shopmwawoodworks.com/products/6-ft-base-cabinet\n5 ft long version - https://shopmwawoodworks.com/products/5-ft-base-cabinet\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO\nMag Switch – https://amzn.to/3XPDMoO\nCountersink Drill Bit – https://amzn.to/3XHRlqk\nTrack saw square – https://tsoproducts.com/guide-rail-squares/grs-16-pe-parallel-edge-guide-rail-square/?ref=MWAWW\nTrack Saw Parallel Guide - https://tsoproducts.com/parallel-guide-system/tpg-parallel-guide-system/?ref=MWAWW\nCentipede Work Holder – https://tsoproducts.com/workstations-components/bora-centipede-4x8-foot-unit-with-4-x-cups-4-clamps-carry-bag/?ref=MWAWW\nQuick & Thick Trim Glue – https://amzn.to/3W3071d\nGreen Tape – https://amzn.to/3W3htuS\nGraco Ultra Quick Shot Sprayer – https://amzn.to/3L0LZiu\nSpray Tent – https://amzn.to/3RPGkQi\nUndermount Drawer Slides – https://amzn.to/4eFiBfp\nZero Protrusion Door Hinges – https://amzn.to/3W0LfQL\nEdge Mount Door Pulls – https://amzn.to/4eIdrPx\nSheppard Bracket 34” – https://amzn.to/3L44Rgt\nSheppard Bracket 22” – https://amzn.to/3xKNluD\n18” Auger Bit - https://amzn.to/3zjnGtr\nTrack Saw – https://amzn.to/3W0Ry6K\nCircular Saw – https://amzn.to/3L0imxX\nJig Saw – https://amzn.to/3VJH0HV\nSpeed Square – https://amzn.to/3RNsrlx\nPocket Hole Jig – https://amzn.to/3L6LvaJ\nLamello Zeta P2 – https://amzn.to/3XHW5fB\nTenso Connectors - https://procabinetsupply.com/products/tenso-p-14-connector-lamello?variant=18934072180803&gad_source=1&gclid=CjwKCAjwvvmzBhA2EiwAtHVrb5kUVZ21X0WPYDoLCso0tvOZDMe4ZZ7Vvt8eghtqH9YN-O1bss4K1BoC9A8QAvD_BwE\nHidden Wireless Charger - https://amzn.to/48cyExU\nHidden Wireless Charger (includes install kit) - https://amzn.to/44Y2tj3\nUPLIFT Standing Desk Frame - https://amzn.to/45SIYd3\nUJK Drill Guide - https://tsoproducts.com/jigs-fixtures-guides/ujk-drill-guide/?ref=MWAWW\nFestool Domnio - https://amzn.to/3EHD6qU\nSoft Close Drawer Slides - https://amzn.to/3ZmP3f5\nAluminum Bar - https://amzn.to/3r9YWQW\nStraight Edge for curves - https://amzn.to/3sQoEtY\nJig Saw - https://amzn.to/3r8QrFL\n2” Forstner Bit - https://amzn.to/48iz7P1\nSmall Clamps - https://amzn.to/3riIPR0\nCountersink Drill Bit - https://amzn.to/3PdIBlW\nMulwark wrench - https://amzn.to/3sUyXNU\nPica Pencil - https://amzn.to/44PytWs\nLED KIT\nWS2815 LED Strip - https://amzn.to/3sT2Rlv\nLED Controller - https://amzn.to/45SJAiR\n4 pin connectors - https://amzn.to/3F116pn\nTouch on/off switch - https://amzn.to/3PtuFVo\n12v 5A power supply - https://amzn.to/3Oycle7\nAluminum track - https://amzn.to/3EFcF5e\n\n\n\n✅️ LIST OF THE TOOLS I USE IN MY SHOP : https://bit.ly/tools-i-use *Disclaimer – As an Amazon Associate I earn from qualifying purchases\n\n✅️ PROJECT PLANS\nCabinet Plan Bundle (Save 50%) - https://mwawoodworks.com/product/the-cabinet-bundle-save-20/\nAll Project Plans Bundled (Save 65%) - https://mwawoodworks.com/product/the-whole-enchilada-plan-bundle/\n\n✅️ Other Affiliate Partners \nBits and Bits Co. - 10% OFF using code MWA10 - https://bit.ly/48Pw5Cq \nTSO Products - https://tsoproducts.com/?ref=MWAWW \nTaylor Toolworks - https://lddy.no/1gngh \n\n✅️ HOW TO SUPPORT MY CHANNEL \nJoin my Patreon community: https://patreon.com/MWAWoodworks \nGet Project Plans: https://bit.ly/download-project-plans \nGet some MWA Woodworks Logo Merch: https://www.mwa.keyapparelstore.com/\nSUBSCRIBE : https://www.youtube.com/mwawoodworks?sub_confirmation=1\n\n✅️ MWA WOODWORKS ON SOCIAL \nInstagram: https://www.instagram.com/mwawoodworks/ \nFacebook: http://fb.com/mwawoodworks \nPinterest: https://www.pinterest.com/mwawoodworks/\n\nThis video is about how I messed up and made my wife work in a storage closet filled with junk and then paid $4000 to make it right.\n\n#cabinets #diyproject #homeoffice", "This room was a DUMP so I did 4 things to make it an AMAZING office space", "994e17ae-e73a-4bb0-b606-13dd9ae5e654", 10, [], 3330, false, "P7VgbsrQ2vo", "https://www.youtube.com/watch?v=P7VgbsrQ2vo", 88, "/downloads/Vanlife/2024-06-30 This room was a DUMP so I did 4 things to make it an AMAZING office space/This room was a DUMP so I did 4 things to make it an AMAZING office space [P7VgbsrQ2vo].mkv", false, false, false, 1, ~U[2024-06-30 15:04:48Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "📽️ WHAT TO WATCH NEXT \nMy Secrets for Cabinet Building - https://youtu.be/Vey9ZclCFMI \nTall Pantry Storage Cabinet - https://youtu.be/8SiuMTZJDqI \nOrganize any Workspace - https://youtu.be/G8HulaZXlS0\n\n✅️ PROJECT PLANS:\n6 ft long cabinet (from this video) - https://shopmwawoodworks.com/products/6-ft-base-cabinet\n5 ft long version - https://shopmwawoodworks.com/products/5-ft-base-cabinet\n\n✅️ TOOLS AND SUPPLIES IN THIS VIDEO\nMag Switch – https://amzn.to/3XPDMoO\nCountersink Drill Bit – https://amzn.to/3XHRlqk\nTrack saw square – https://tsoproducts.com/guide-rail-squares/grs-16-pe-parallel-edge-guide-rail-square/?ref=MWAWW\nTrack Saw Parallel Guide - https://tsoproducts.com/parallel-guide-system/tpg-parallel-guide-system/?ref=MWAWW\nCentipede Work Holder – https://tsoproducts.com/workstations-components/bora-centipede-4x8-foot-unit-with-4-x-cups-4-clamps-carry-bag/?ref=MWAWW\nQuick & Thick Trim Glue – https://amzn.to/3W3071d\nGreen Tape – https://amzn.to/3W3htuS\nGraco Ultra Quick Shot Sprayer – https://amzn.to/3L0LZiu\nSpray Tent – https://amzn.to/3RPGkQi\nUndermount Drawer Slides – https://amzn.to/4eFiBfp\nZero Protrusion Door Hinges – https://amzn.to/3W0LfQL\nEdge Mount Door Pulls – https://amzn.to/4eIdrPx\nSheppard Bracket 34” – https://amzn.to/3L44Rgt\nSheppard Bracket 22” – https://amzn.to/3xKNluD\n18” Auger Bit - https://amzn.to/3zjnGtr\nTrack Saw – https://amzn.to/3W0Ry6K\nCircular Saw – https://amzn.to/3L0imxX\nJig Saw – https://amzn.to/3VJH0HV\nSpeed Square – https://amzn.to/3RNsrlx\nPocket Hole Jig – https://amzn.to/3L6LvaJ\nLamello Zeta P2 – https://amzn.to/3XHW5fB\nTenso Connectors - https://procabinetsupply.com/products/tenso-p-14-connector-lamello?variant=18934072180803&gad_source=1&gclid=CjwKCAjwvvmzBhA2EiwAtHVrb5kUVZ21X0WPYDoLCso0tvOZDMe4ZZ7Vvt8eghtqH9YN-O1bss4K1BoC9A8QAvD_BwE\nHidden Wireless Charger - https://amzn.to/48cyExU\nHidden Wireless Charger (includes install kit) - https://amzn.to/44Y2tj3\nUPLIFT Standing Desk Frame - https://amzn.to/45SIYd3\nUJK Drill Guide - https://tsoproducts.com/jigs-fixtures-guides/ujk-drill-guide/?ref=MWAWW\nFestool Domnio - https://amzn.to/3EHD6qU\nSoft Close Drawer Slides - https://amzn.to/3ZmP3f5\nAluminum Bar - https://amzn.to/3r9YWQW\nStraight Edge for curves - https://amzn.to/3sQoEtY\nJig Saw - https://amzn.to/3r8QrFL\n2” Forstner Bit - https://amzn.to/48iz7P1\nSmall Clamps - https://amzn.to/3riIPR0\nCountersink Drill Bit - https://amzn.to/3PdIBlW\nMulwark wrench - https://amzn.to/3sUyXNU\nPica Pencil - https://amzn.to/44PytWs\nLED KIT\nWS2815 LED Strip - https://amzn.to/3sT2Rlv\nLED Controller - https://amzn.to/45SJAiR\n4 pin connectors - https://amzn.to/3F116pn\nTouch on/off switch - https://amzn.to/ (truncated) 11:05:34.203 [debug] QUERY OK source="sources" db=0.1ms idle=19.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.204 [debug] QUERY OK source="media_items" db=0.3ms idle=18.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-27 12:30:18Z], 10] 11:05:34.210 [debug] QUERY OK source="media_items" db=5.7ms idle=18.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode, Jeff points out some of the benefits of having Kitchen Cabinet Parts made by a CNC company. He’ll go into some of the details on how the parts will arrive and even assembles a small cabinet on camera in minutes. Hope you enjoyed this episode and thanks for watching. Jon", "KITCHEN CABINETS - BUILD or BUY? / CNC Kitchen Cabinets", "bc8a9779-4342-4ff2-8bf9-37bf369cd6d9", 10, [], 517, false, "VAO1pg2Fh2s", "https://www.youtube.com/watch?v=VAO1pg2Fh2s", 89, "/downloads/Vanlife/2024-04-27 KITCHEN CABINETS - BUILD or BUY? ⧸ CNC Kitchen Cabinets/KITCHEN CABINETS - BUILD or BUY? ⧸ CNC Kitchen Cabinets [VAO1pg2Fh2s].mp4", false, false, false, 1, ~U[2024-04-27 12:30:18Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "In this episode, Jeff points out some of the benefits of having Kitchen Cabinet Parts made by a CNC company. He’ll go into some of the details on how the parts will arrive and even assembles a small cabinet on camera in minutes. Hope you enjoyed this episode and thanks for watching. Jon", "KITCHEN CABINETS - BUILD or BUY? / CNC Kitchen Cabinets", 10, 517, false, "VAO1pg2Fh2s", "https://www.youtube.com/watch?v=VAO1pg2Fh2s", "/downloads/Vanlife/2024-04-27 KITCHEN CABINETS - BUILD or BUY? ⧸ CNC Kitchen Cabinets/KITCHEN CABINETS - BUILD or BUY? ⧸ CNC Kitchen Cabinets [VAO1pg2Fh2s].mp4", false, ~U[2024-04-27 12:30:18Z]] 11:05:34.210 [debug] QUERY OK source="sources" db=0.2ms idle=23.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.211 [debug] QUERY OK source="media_items" db=0.3ms 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[2026-05-07 15:51:31Z], 10] 11:05:34.212 [debug] QUERY OK source="media_items" db=0.6ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Take a full tour of this custom 4x4 Mercedes Sprinter van built for off-grid adventure and everyday comfort. From the massive electrical system to the full shower, toilet, and premium interior — this van was designed to go anywhere without sacrificing luxury.\n\nIn this video, we break down:\n• Full off-grid electrical system\n• Shower + toilet setup\n• Custom kitchen and storage\n• Sleeping layout and garage space\n• Exterior upgrades and off-road capability\n• Design choices and build details\n\nWe’re Jared & Maddi, the owners behind Vancini Conversions — a Canadian custom van conversion company building one-of-a-kind homes on wheels.\n\nFollow along as we share van tours, behind-the-scenes shop life, design ideas, and the realities of building custom adventure vans from the ground up.\n\n📍 Learn More: vanciniconversions.com\n📩 Contact: info@vanciniconversions.com\n\n📱 Follow Us:\n► Instagram - / vanciniconversions\n► Facebook - / vanciniconversions\n► Pinterest - / vanciniconversions\n\n#sprintervan #vantour #vanconversion #offgridvan #vanlife #sprinter4x4 #campervan #customvan #adventurevan #vanciniConversations", "Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build", "0b841567-e76d-482e-a013-274e13c90237", 10, [], 993, false, "84VioMSbM3c", "https://www.youtube.com/watch?v=84VioMSbM3c", 90, "/downloads/Vanlife/2026-05-07 Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build/Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build [84VioMSbM3c].mkv", false, false, false, 1, ~U[2026-05-07 15:51:31Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Take a full tour of this custom 4x4 Mercedes Sprinter van built for off-grid adventure and everyday comfort. From the massive electrical system to the full shower, toilet, and premium interior — this van was designed to go anywhere without sacrificing luxury.\n\nIn this video, we break down:\n• Full off-grid electrical system\n• Shower + toilet setup\n• Custom kitchen and storage\n• Sleeping layout and garage space\n• Exterior upgrades and off-road capability\n• Design choices and build details\n\nWe’re Jared & Maddi, the owners behind Vancini Conversions — a Canadian custom van conversion company building one-of-a-kind homes on wheels.\n\nFollow along as we share van tours, behind-the-scenes shop life, design ideas, and the realities of building custom adventure vans from the ground up.\n\n📍 Learn More: vanciniconversions.com\n📩 Contact: info@vanciniconversions.com\n\n📱 Follow Us:\n► Instagram - / vanciniconversions\n► Facebook - / vanciniconversions\n► Pinterest - / vanciniconversions\n\n#sprintervan #vantour #vanconversion #offgridvan #vanlife #sprinter4x4 #campervan #customvan #adventurevan #vanciniConversations", "Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build", 10, 993, false, "84VioMSbM3c", "https://www.youtube.com/watch?v=84VioMSbM3c", "/downloads/Vanlife/2026-05-07 Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build/Ultimate 4x4 Sprinter Van Tour | Off-Grid Luxury Build [84VioMSbM3c].mkv", false, ~U[2026-05-07 15:51:31Z]] 11:05:34.212 [debug] QUERY OK source="sources" db=0.1ms 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" = ?) [10] 11:05:34.213 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms 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[2022-11-12 15:29:15Z], 10] 11:05:34.214 [debug] QUERY OK source="media_items" db=0.9ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["FINALLY, I am starting to cut the interior cabinets for the van! Designs by me were converted and streamlined by my buddy Ted in Portland.\nhttps://www.facebook.com/peachsmithdesigns/ \n\nThe cabinets are being cut by Detroit Woodworking in St. Clair Shores, MI. THANKS SO MUCH!\nhttps://detroitww.com/\nhttps://www.facebook.com/detroitwoodworking\n\n22960 Industrial W. Dr.\nSt. Clair Shores, MI 48080\nPhone: 586.204.5882\nFax: 313.692.6152\n\nIf you are interested in the 3D program, check out https://www.shapr3d.com/ @Shapr3d \n\n--------- SUPPORT ME ---------\nPATREON: https://www.patreon.com/JaYoe \nBUY ME A COFFEE: https://ko-fi.com/jayoe\nSHOP ON JAYOE: https://jayoe.com/jayoe-gear-and-merch/\nSEND ME ON WECHAT: http://jayoe.com/wechat/\n\n--------- SUPPORT ME ON YOUTUBE ---------\nhttps://www.youtube.com/JaYoeNation/join\n\nFollow me on the Internets…\nWEBSITE: http://www.jayoe.com \nYOUTUBE: https://www.youtube.com/JaYoeNation \nFACEBOOK: https://www.facebook.com/JaYoeLife/ \nINSTAGRAM: https://www.instagram.com/jayoelife/ \nTWITTER: https://twitter.com/jayoelife \nBilliBIlli: https://space.bilibili.com/100182773\nDouyin: 加油马特\nToutiao: http://toutiao.com/m1681328028969998/\nREDBUBBLE STORE: https://www.redbubble.com/shop/jayoe\nPERSONAL FACEBOOK: https://www.facebook.com/mcgalat \nPODCAST: https://itunes.apple.com/us/podcast/podcast-jayoe!/id1044254053?mt=2\nSTRAVA: https://www.strava.com/athletes/21659886 \nGARMIN: https://connect.garmin.com/modern/profile/JaYoeLife\n\n--------- JAYOE MERCHANDISE ON REDBUBBLE ---------\nhttps://www.redbubble.com/shop/jayoe\n\n------- WHAT DOES JAYOE MEAN? ---------\nhttps://youtu.be/4m7t4Vt1Ir8\n\n------- OTHER SERIES ON THE JAYOE NATION -------\n\nCLIMB UP MOUNT EVEREST\nWatch me on my Everest summit expedition!\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vsnzp_JW0t7Os2EEkyjt_P\n\nMARATHON IN NORTH KOREA\nJoin me as I run a marathon in North Korea, DPRK!\nhttps://youtu.be/DJxsu10VNwA\n\nTHE JAYOE TRAVELOGUES\nThe precursor to my VLOGs, a cycling travel documentary series\nhttps://jayoe.com/the-jayoe-travelogues/ \n\nMATT’S REEF TANK\nA series dedicated to the marine reef tank hobby\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vQAUeuFaIuV-BfbXw-Mx1N\n\n\n1229 – Detroit Woodworking\n\n#vanlife #CNC #interiordesign #JaYoe", "CNC Cutting my VANLIFE Interior Cabinets!", "634e1c20-f4b2-4785-af96-b2eae376c1f2", 10, [], 759, false, "tUwq85U_Roc", "https://www.youtube.com/watch?v=tUwq85U_Roc", 91, "/downloads/Vanlife/2022-11-12 CNC Cutting my VANLIFE Interior Cabinets!/CNC Cutting my VANLIFE Interior Cabinets! [tUwq85U_Roc].mp4", false, false, false, 1, ~U[2022-11-12 15:29:15Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "FINALLY, I am starting to cut the interior cabinets for the van! Designs by me were converted and streamlined by my buddy Ted in Portland.\nhttps://www.facebook.com/peachsmithdesigns/ \n\nThe cabinets are being cut by Detroit Woodworking in St. Clair Shores, MI. THANKS SO MUCH!\nhttps://detroitww.com/\nhttps://www.facebook.com/detroitwoodworking\n\n22960 Industrial W. Dr.\nSt. Clair Shores, MI 48080\nPhone: 586.204.5882\nFax: 313.692.6152\n\nIf you are interested in the 3D program, check out https://www.shapr3d.com/ @Shapr3d \n\n--------- SUPPORT ME ---------\nPATREON: https://www.patreon.com/JaYoe \nBUY ME A COFFEE: https://ko-fi.com/jayoe\nSHOP ON JAYOE: https://jayoe.com/jayoe-gear-and-merch/\nSEND ME ON WECHAT: http://jayoe.com/wechat/\n\n--------- SUPPORT ME ON YOUTUBE ---------\nhttps://www.youtube.com/JaYoeNation/join\n\nFollow me on the Internets…\nWEBSITE: http://www.jayoe.com \nYOUTUBE: https://www.youtube.com/JaYoeNation \nFACEBOOK: https://www.facebook.com/JaYoeLife/ \nINSTAGRAM: https://www.instagram.com/jayoelife/ \nTWITTER: https://twitter.com/jayoelife \nBilliBIlli: https://space.bilibili.com/100182773\nDouyin: 加油马特\nToutiao: http://toutiao.com/m1681328028969998/\nREDBUBBLE STORE: https://www.redbubble.com/shop/jayoe\nPERSONAL FACEBOOK: https://www.facebook.com/mcgalat \nPODCAST: https://itunes.apple.com/us/podcast/podcast-jayoe!/id1044254053?mt=2\nSTRAVA: https://www.strava.com/athletes/21659886 \nGARMIN: https://connect.garmin.com/modern/profile/JaYoeLife\n\n--------- JAYOE MERCHANDISE ON REDBUBBLE ---------\nhttps://www.redbubble.com/shop/jayoe\n\n------- WHAT DOES JAYOE MEAN? ---------\nhttps://youtu.be/4m7t4Vt1Ir8\n\n------- OTHER SERIES ON THE JAYOE NATION -------\n\nCLIMB UP MOUNT EVEREST\nWatch me on my Everest summit expedition!\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vsnzp_JW0t7Os2EEkyjt_P\n\nMARATHON IN NORTH KOREA\nJoin me as I run a marathon in North Korea, DPRK!\nhttps://youtu.be/DJxsu10VNwA\n\nTHE JAYOE TRAVELOGUES\nThe precursor to my VLOGs, a cycling travel documentary series\nhttps://jayoe.com/the-jayoe-travelogues/ \n\nMATT’S REEF TANK\nA series dedicated to the marine reef tank hobby\nhttps://www.youtube.com/playlist?list=PLCXSKSR1qp-vQAUeuFaIuV-BfbXw-Mx1N\n\n\n1229 – Detroit Woodworking\n\n#vanlife #CNC #interiordesign #JaYoe", "CNC Cutting my VANLIFE Interior Cabinets!", 10, 759, false, "tUwq85U_Roc", "https://www.youtube.com/watch?v=tUwq85U_Roc", "/downloads/Vanlife/2022-11-12 CNC Cutting my VANLIFE Interior Cabinets!/CNC Cutting my VANLIFE Interior Cabinets! [tUwq85U_Roc].mp4", false, ~U[2022-11-12 15:29:15Z]] 11:05:34.215 [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" = ?) [10] 11:05:34.215 [debug] QUERY OK source="media_items" db=0.3ms 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-09 17:15:43Z], 10] 11:05:34.217 [debug] QUERY OK source="media_items" db=0.9ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["THE CONCRETE OASIS REDEFINES THE BOUNDARIES BETWEEN ADVENTURE AND STYLE\n\nInspired by Tulum-style architecture, its visual aesthetic is nothing short of breathtaking. With European-imported concrete-like finishes, walnut wood accents, top-level systems, and an unmatched attention to detail, this van breaks all the norms of the traditional campervan world. Every inch has been meticulously designed to offer a truly unique and immersive experience.\n\nMore than just campervans, these vans are meticulously designed to inspire adventure, comfort, and connection - blending exceptional craftsmanship with the freedom to explore anywhere in style.", "CONCRETE OASIS 2.0 WALKTHROUGH", "0d166c69-178d-495f-9793-2d173ac34250", 10, [], 835, false, "I7pePvaQeZ4", "https://www.youtube.com/watch?v=I7pePvaQeZ4", 92, "/downloads/Vanlife/2025-07-09 CONCRETE OASIS 2.0 WALKTHROUGH/CONCRETE OASIS 2.0 WALKTHROUGH [I7pePvaQeZ4].mkv", false, false, false, 1, ~U[2025-07-09 17:15:43Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "THE CONCRETE OASIS REDEFINES THE BOUNDARIES BETWEEN ADVENTURE AND STYLE\n\nInspired by Tulum-style architecture, its visual aesthetic is nothing short of breathtaking. With European-imported concrete-like finishes, walnut wood accents, top-level systems, and an unmatched attention to detail, this van breaks all the norms of the traditional campervan world. Every inch has been meticulously designed to offer a truly unique and immersive experience.\n\nMore than just campervans, these vans are meticulously designed to inspire adventure, comfort, and connection - blending exceptional craftsmanship with the freedom to explore anywhere in style.", "CONCRETE OASIS 2.0 WALKTHROUGH", 10, 835, false, "I7pePvaQeZ4", "https://www.youtube.com/watch?v=I7pePvaQeZ4", "/downloads/Vanlife/2025-07-09 CONCRETE OASIS 2.0 WALKTHROUGH/CONCRETE OASIS 2.0 WALKTHROUGH [I7pePvaQeZ4].mkv", false, ~U[2025-07-09 17:15:43Z]] 11:05:34.217 [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" = ?) [10] 11:05:34.218 [debug] QUERY OK source="media_items" db=0.3ms 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[2023-12-23 06:04:00Z], 10] 11:05:34.220 [debug] QUERY OK source="media_items" db=1.6ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We spent 6 months converting this van and filmed the entire process (or at least 90% of it...)! Watch as we convert an empty 2023 high roof, extended length Ford Transit into a luxury home on wheels. \n \nWe hope you enjoy getting a sneak peek into what went into our latest van conversion!\n\nAs always, we thank you for your support and for following along.\n \n-------------\n \nFULL VAN TOUR: https://www.youtube.com/watch?v=EpPZ2slykHA&t=28s\n \nFor business inquiries please contact us via email: triovanconversions@gmail.com\n \nAs always, please LIKE 👍🏻 this video, SUBSCRIBE to our channel, and COMMENT if you have any questions or feedback!\n \nFollow us on Instagram for behind the scenes content: @thetriointransit\n \nThank you for your support!\n \n--------------\n \nVan Components\nInterior:\nNovaKool r4500 DC fridge\nBrava smart oven\nEmpava 1800W dual burner induction cooktop: https://amzn.to/39MJxwP\nKraus 15 x 20 inch stainless steel sink: https://amzn.to/3kQVLql\nKraus stainless steel faucet\n12V Mi Heat heated floor\nNautilus retractable shower door\nXgimi MOGO 2 Pro Projector\nCuddy compositing toilet https://compocloset.com/?ref=Ppz_GFst...\nand use code “goanywhere” for free shipping\nVancillary headliner shelf: https://amzn.to/3vTYzJz\nHavelock Wool insulation: https://havelockwool.com/\nSimarine PICO https://simarine.net/ 5% Off Discount Code: tim&katie5\nGopower 3000W inverter/Charger\nCTEK Smartpass 120s: https://amzn.to/3kQVPGB\nCTEK D250SE: https://amzn.to/3KVOH6D\nVolthium 400AH self-heating 12V Lithium Phosphate Battery: https://volthium.com/en/\nEberspacher M2 B4L gas heater\nBlueSea fuse block: https://amzn.to/3P4R9La\nPeplink BR1 Max Pro 5G Pro router\nStarlink with our own design and 3D printed Trio Flatmount\nUndermount AC 12V: https://undermountac.com/collections/...\n \nExterior:\nVanspeed Shop Capsules\nCRL Bunk Half slider windows\nPeplink Mobility 42G 7 in 1 antenna\nMaxxAir Deluxe fan: https://amzn.to/38brXSE\nBlack Rhino Arsenal wheels\nFalkan A/T4W tires (https://www.falkentire.com/wildpeak/at4w)\nRover Vans Accessory rack, ladder and tire carrier, expedition box\nKuat SR Piston bike racks\nCAtuned Ford Transit bumper\nWarn VR Evo 12-S winch\nBaja Designs LP6s\nAuxbeam 52\" lightbar\nBrightsource area lights\nThule Hideaway 10' awning\n8x Newpowa 100W solar panels\n1x Gorichsolar 100W slim solar panel\n \nSuspension:\nTransit Off Road 2\" Lift Kit\nSumosprings\nSupersprings\nCoil Sumosprings\n\n\nChapters:\n00:00 - Subfloor\n00:37 - Ceiling Fan\n00:49 - Fiberglass Capsules\n01:22 - Sheep’s Wool Insulation\n01:39 - Furring Strips\n02:17 - Headliner Shelf\n02:32 - Sheet Vinyl Floor\n02:45 - 12V Heated Floor\n03:14 - Shower Framing\n03:40 - Bed Bump Outs\n04:04 - Custom Roof Rack\n04:42 - Peplink Cellular Antenna\n04:48 - Tongue and Groove Ceiling\n05:36 - Bed Platform\n06:22 - Cabinets\n09:33 - AC Ducting\n09:41 - Countertop\n10:47 - Solar Electrical System\n11:30 - Cabinet Hardware\n11:57 - Wall Panels\n12:23 - Side Steps\n12:44 - Backsplash\n12:56 - Shower\n14:37 - Pull-out Toilet\n15:37 - Exterior Lighting and Solar Panels\n16:48 - Aftermarket Hitch Receiver\n16:57 - Painting\n17:08 - Off Grid Electrical System\n17:31 - Espar B4L Gasoline Heater\n18:16 - Exterior Lighting Switch Panel\n18:31 - Alternator Charging System\n18:51 - Plumbing and Shower Walls\n19:28 - Bumper, Winch, Lights\n19:58 - Utensil Drawer\n20:05 - Shower Wall and Trim\n20:44 - 34 Gallon Freshwater Tank\n21:00 - Control Panel Wall\n21:20 - Undermount Air Conditioning\n22:15 - Garage Cabinets\n23:03 - Trim\n23:20 - Water Filter\n23:30 - Slam Latches and Gas Struts\n23:57 - Dinette Table\n24:03 - Shower Trim\n24:15 - 20 Gallon Graywater Tank\n25:10 - Shower Niche and Door\n25:41 - Control Panel\n25:59 - Garage Cabinets and Drawer\n27:14 - 3D Printed Starlink Flatmount\n27:59 - Custom Cushions\n28:07 - Bed Rail\n28:25 - Custom Mattress\n28:34 - Rear Door Templates\n28:50 - Rear Door Accessories\n29:29 - The Final Result!\n\n\n\n17:04 - Finishing up", "DIY Campervan Conversion | Full Build TIMELAPSE (6 Months)", "9a88c12e-d615-4274-aba9-960bd526fe11", 10, [], 1812, false, "AeCekt3bGSs", "https://www.youtube.com/watch?v=AeCekt3bGSs", 93, "/downloads/Vanlife/2023-12-23 DIY Campervan Conversion | Full Build TIMELAPSE (6 Months)/DIY Campervan Conversion | Full Build TIMELAPSE (6 Months) [AeCekt3bGSs].mp4", false, false, false, 1, ~U[2023-12-23 06:04:00Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "We spent 6 months converting this van and filmed the entire process (or at least 90% of it...)! Watch as we convert an empty 2023 high roof, extended length Ford Transit into a luxury home on wheels. \n \nWe hope you enjoy getting a sneak peek into what went into our latest van conversion!\n\nAs always, we thank you for your support and for following along.\n \n-------------\n \nFULL VAN TOUR: https://www.youtube.com/watch?v=EpPZ2slykHA&t=28s\n \nFor business inquiries please contact us via email: triovanconversions@gmail.com\n \nAs always, please LIKE 👍🏻 this video, SUBSCRIBE to our channel, and COMMENT if you have any questions or feedback!\n \nFollow us on Instagram for behind the scenes content: @thetriointransit\n \nThank you for your support!\n \n--------------\n \nVan Components\nInterior:\nNovaKool r4500 DC fridge\nBrava smart oven\nEmpava 1800W dual burner induction cooktop: https://amzn.to/39MJxwP\nKraus 15 x 20 inch stainless steel sink: https://amzn.to/3kQVLql\nKraus stainless steel faucet\n12V Mi Heat heated floor\nNautilus retractable shower door\nXgimi MOGO 2 Pro Projector\nCuddy compositing toilet https://compocloset.com/?ref=Ppz_GFst...\nand use code “goanywhere” for free shipping\nVancillary headliner shelf: https://amzn.to/3vTYzJz\nHavelock Wool insulation: https://havelockwool.com/\nSimarine PICO https://simarine.net/ 5% Off Discount Code: tim&katie5\nGopower 3000W inverter/Charger\nCTEK Smartpass 120s: https://amzn.to/3kQVPGB\nCTEK D250SE: https://amzn.to/3KVOH6D\nVolthium 400AH self-heating 12V Lithium Phosphate Battery: https://volthium.com/en/\nEberspacher M2 B4L gas heater\nBlueSea fuse block: https://amzn.to/3P4R9La\nPeplink BR1 Max Pro 5G Pro router\nStarlink with our own design and 3D printed Trio Flatmount\nUndermount AC 12V: https://undermountac.com/collections/...\n \nExterior:\nVanspeed Shop Capsules\nCRL Bunk Half slider windows\nPeplink Mobility 42G 7 in 1 antenna\nMaxxAir Deluxe fan: https://amzn.to/38brXSE\nBlack Rhino Arsenal wheels\nFalkan A/T4W tires (https://www.falkentire.com/wildpeak/at4w)\nRover Vans Accessory rack, ladder and tire carrier, expedition box\nKuat SR Piston bike racks\nCAtuned Ford Transit bumper\nWarn VR Evo 12-S winch\nBaja Designs LP6s\nAuxbeam 52\" lightbar\nBrightsource area lights\nThule Hideaway 10' awning\n8x Newpowa 100W solar panels\n1x Gorichsolar 100W slim solar panel\n \nSuspension:\nTransit Off Road 2\" Lift Kit\nSumosprings\nSupersprings\nCoil Sumosprings\n\n\nChapters:\n00:00 - Subfloor\n00:37 - Ceiling Fan\n00:49 - Fiberglass Capsules\n01:22 - Sheep’s Wool Insulation\n01:39 - Furring Strips\n02:17 - Headliner Shelf\n02:32 - Sheet Vinyl Floor\n02:45 - 12V Heated Floor\n03:14 - Shower Framing\n03:40 - Bed Bump Outs\n04:04 - Custom Roof Rack\n04:42 - Peplink Cellular Antenna\n04:48 - Tongue and Groove Ceiling\n05:36 - Bed Platform\n06:22 - Cabinets\n (truncated) 11:05:34.220 [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" = ?) [10] 11:05:34.221 [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-05 21:00:28Z], 10] 11:05:34.223 [debug] QUERY OK source="media_items" db=1.4ms idle=4.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join us for an in-depth van tour of this meticulously designed camper van, perfect for any adventure travel plans! This van conversion showcases a comfortable interior with ample storage and a compact shower, emphasizing its suitability for life off grid. It truly embodies the spirit of van life and is ready for your next road trip.\n\nhttp://tinyplanet.group/jtorbita\n\u00A0\u2068@TinyPlanetGroup\u2069\n\n00:00 - Intro\n01:10 - We traveled the World\n05:21 - Exterior (suspension, compartments, bike rack)\n09:33 - Under mount heated water tank (custom)\n11:19 - Front bumper\n12:20 - Roof rack & awning\n13:10 - Roof solar and roof seating area\n14:40 - Sliding door entry\n15:35 - Front seating section with extra bed\n20:08 - Galley and kitchen\n24:47 - Lighting package (16 zones)\n26:28 - Smart system controls\n30:55 - Fridge\n31:25 - Shower and toilet (real concrete walls)\n34:28 - Rear seating dineate\n39:00 - Bed and how it's made\n41:30 - Garage\n43:49 - Voice command smart system\n45:55 - Price\n46:30 - Company information\n\nAll Jarrod Tocci Information:\nOther Channels: \u00A0\u2068@Tocrastuido\u2069\u00A0 \nWant to work together or feature your build?\n📩 Business inquiries: jarrod.tocci@thestation.io\n info@jarrodtocci.com\nFOLLOW ALONG:\nInstagram ➜ https://www.instagram.com/jarrodtocci \nWebsite ➜ https://jarrodtocci.com/\n\n🔗 MY FAVORITE GEAR & PARTNER DISCOUNTS\nThese are products I personally use and love. Some links are affiliate links — using them helps support the channel at no extra cost to you. 🙏\n🛠 Vamonos Vans — DIY Van Build Kits & Parts \nSubfloors, wall systems, beds & more to make your build faster and cleaner \n10% off with code TOCCI10 \n➜ https://vamonosvans.myshopify.com?sca_ref=10251043.INRrlDK4aZN16Wd\n🔋 BigBattery.com – Off-Grid BatteriesSave with code TOCCI10 ➜ https://bigbattery.com/?ref=230\n🛏 Roam Rest MattressesUse code jarrodtocci10 at checkout ➜ https://roamrest.com\n🔆 Sunflare Solar – Flexible, walkable solar panels\n10% off + Free Shipping with code Jarrod10\nOverland & rooftop tents ➜ https://www.sunflarexplor.com\nTiny homes & residential ➜ https://www.sunflarearray.com\n🚽 CompoCloset Composting Toilets\nSmell-free, easy to use\nStandard ➜ https://compocloset.com/?ref=2meJcc2Cz6jLa\nS1 Sealer ➜ https://compocloset.com/pages/compocloset-s1-sealer?currency=USD\n🧊 ICECO Portable Fridges & Freezers12% off with code JARRODTOCCI ➜ https://icecofreezer.com/JarrodTocci\n⚡️ RV Solar & Electrical Systems by RV ConnectionsGet your off-grid system set up ➜ https://rvsolarconnections.com/ref/1063/Use code JARRODT5 for a discount!\n🪵 TotalBoat Epoxy & Wood FinishesGreat for DIY and woodworking projects ➜ https://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n🧰 Zarges – Rugged Aluminum Hard Cases\nPerfect for overlanding & gear storage ➜ Zarges\n🐑 Havelock Wool Insulation\nAll-natural, sustainable ➜ http://havelockwool.refr.cc/jarrodt\n🏝 Sandy Vans – 10% off select van upgrades\nUse code JARROD10 at checkout\n➜ https://sandyvans.com/JARROD10\nEligible products: Boost Box, SV Sandbar Roof Rack [2008+], Side Ladder, Starboard/Port Racks, Side Steps, Spare Tire Rack, Boost Box Mini, Stern Rear Step, Headliner Shelf\n🪵 Solid Wood Worx – $100 off PreCut Kits for overlanding vehicles\nUse code JARROD100 at checkout\n➜ https://solidwoodworx.com/JARROD100", "The Luxury Van That Traveled 25,000 Miles Across Continents", "2f86a9e2-dcf2-470e-ab9e-c021ccb57709", 10, [], 2875, false, "GfUU1pJOgUM", "https://www.youtube.com/watch?v=GfUU1pJOgUM", 94, "/downloads/Vanlife/2026-03-05 The Luxury Van That Traveled 25,000 Miles Across Continents/The Luxury Van That Traveled 25,000 Miles Across Continents [GfUU1pJOgUM].mkv", false, false, false, 1, ~U[2026-03-05 21:00:28Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Join us for an in-depth van tour of this meticulously designed camper van, perfect for any adventure travel plans! This van conversion showcases a comfortable interior with ample storage and a compact shower, emphasizing its suitability for life off grid. It truly embodies the spirit of van life and is ready for your next road trip.\n\nhttp://tinyplanet.group/jtorbita\n\u00A0\u2068@TinyPlanetGroup\u2069\n\n00:00 - Intro\n01:10 - We traveled the World\n05:21 - Exterior (suspension, compartments, bike rack)\n09:33 - Under mount heated water tank (custom)\n11:19 - Front bumper\n12:20 - Roof rack & awning\n13:10 - Roof solar and roof seating area\n14:40 - Sliding door entry\n15:35 - Front seating section with extra bed\n20:08 - Galley and kitchen\n24:47 - Lighting package (16 zones)\n26:28 - Smart system controls\n30:55 - Fridge\n31:25 - Shower and toilet (real concrete walls)\n34:28 - Rear seating dineate\n39:00 - Bed and how it's made\n41:30 - Garage\n43:49 - Voice command smart system\n45:55 - Price\n46:30 - Company information\n\nAll Jarrod Tocci Information:\nOther Channels: \u00A0\u2068@Tocrastuido\u2069\u00A0 \nWant to work together or feature your build?\n📩 Business inquiries: jarrod.tocci@thestation.io\n info@jarrodtocci.com\nFOLLOW ALONG:\nInstagram ➜ https://www.instagram.com/jarrodtocci \nWebsite ➜ https://jarrodtocci.com/\n\n🔗 MY FAVORITE GEAR & PARTNER DISCOUNTS\nThese are products I personally use and love. Some links are affiliate links — using them helps support the channel at no extra cost to you. 🙏\n🛠 Vamonos Vans — DIY Van Build Kits & Parts \nSubfloors, wall systems, beds & more to make your build faster and cleaner \n10% off with code TOCCI10 \n➜ https://vamonosvans.myshopify.com?sca_ref=10251043.INRrlDK4aZN16Wd\n🔋 BigBattery.com – Off-Grid BatteriesSave with code TOCCI10 ➜ https://bigbattery.com/?ref=230\n🛏 Roam Rest MattressesUse code jarrodtocci10 at checkout ➜ https://roamrest.com\n🔆 Sunflare Solar – Flexible, walkable solar panels\n10% off + Free Shipping with code Jarrod10\nOverland & rooftop tents ➜ https://www.sunflarexplor.com\nTiny homes & residential ➜ https://www.sunflarearray.com\n🚽 CompoCloset Composting Toilets\nSmell-free, easy to use\nStandard ➜ https://compocloset.com/?ref=2meJcc2Cz6jLa\nS1 Sealer ➜ https://compocloset.com/pages/compocloset-s1-sealer?currency=USD\n🧊 ICECO Portable Fridges & Freezers12% off with code JARRODTOCCI ➜ https://icecofreezer.com/JarrodTocci\n⚡️ RV Solar & Electrical Systems by RV ConnectionsGet your off-grid system set up ➜ https://rvsolarconnections.com/ref/1063/Use code JARRODT5 for a discount!\n🪵 TotalBoat Epoxy & Wood FinishesGreat for DIY and woodworking projects ➜ https://www.totalboat.com/?sca_ref=3304680.OnQqCXRnc7\n🧰 Zarges – Rugged Aluminum Hard Cases\nPerfect for overlanding & gear storage ➜ Zarges\n🐑 Havelock Wool Insulation\nAll-natural, sustainable ➜ http://havelockwool.refr.cc/jarrodt\n🏝 Sandy Vans – 10% off select van upgrades\nUse code JARROD10 at checkout\n➜ https://sandyvans.com/JARROD10\nEligible products: Boost Box, SV Sandbar Roof Rack [2008+], Side Ladder, Starboard/Port Racks, Side Steps, Spare Tire Rack, Boost Box Mini, Stern Rear Step, Headliner Shelf\n🪵 Solid Wood Worx – $100 off PreCut Kits for overlanding vehicles\nUse code JARROD100 at checkout\n➜ http (truncated) 11:05:34.223 [debug] QUERY OK source="sources" db=0.2ms queue=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" = ?) [10] 11:05:34.224 [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-04-10 16:01:24Z], 10] 11:05:34.225 [debug] QUERY OK source="media_items" db=0.7ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Full Van Tour https://youtu.be/BLZwNQhsi4Y?si=J0LMrxdxCfGzeVX8\n\n🔗 EXPLORE THE BUILD\n\n🚐 The full van build → jonroams.co.uk/van-build\n💷 What it cost (the honest numbers) → jonroams.co.uk/van-cost\n📊 Monthly expenses → jonroams.co.uk/monthly-expenses\n⚡ Electrical reports → jonroams.co.uk/electrical-reports\n\n🛠️ FREE TOOLS & CALCULATORS\n\n💷 Monthly Budget Calculator → jonroams.co.uk/monthly-cost-calculator\n🔨 Conversion Cost Calculator → jonroams.co.uk/conversion-cost-calculator\n☀️ Solar & Battery Sizing Calculator → jonroams.co.uk/solar-sizing-calculator\n⛽ Fuel Cost Calculator → jonroams.co.uk/fuel-cost-calculator\n🏕️ Wild Camping Checker → jonroams.co.uk/wild-camping-checker\n\n🎒 GEAR I ACTUALLY USE\n\n📷 Camera & filming gear → jonroams.co.uk/camera-gear\n💻 My desk setup → jonroams.co.uk/desk-setup\n🧺 Van life essentials → jonroams.co.uk/van-life-essentials\n🥾 Hiking gear → jonroams.co.uk/hiking-gear\n🏷️ Links & discount codes → jonroams.co.uk/links-discounts\n\n📬 SAY HELLO\n\n🤝 Work with me → jonroams@influint.co\n✉️ Get in touch → jonroams.co.uk/contact\n\nSolo travel, filmed and edited by me while living on the road.\n\nAll footage in this video was captured on location during my travels. No stock footage or AI-generated visuals — everything you see was filmed by me.\n\nSub Count: 1,999", "What Vanlife ALONE Is ACTUALLY Like", "4070ab21-86fe-4dc4-9e31-34232bea8f4c", 10, [], 1411, false, "pFohl7T9Y1o", "https://www.youtube.com/watch?v=pFohl7T9Y1o", 95, "/downloads/Vanlife/2026-04-10 What Vanlife ALONE Is ACTUALLY Like/What Vanlife ALONE Is ACTUALLY Like [pFohl7T9Y1o].mkv", false, false, false, 1, ~U[2026-04-10 16:01:24Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Full Van Tour https://youtu.be/BLZwNQhsi4Y?si=J0LMrxdxCfGzeVX8\n\n🔗 EXPLORE THE BUILD\n\n🚐 The full van build → jonroams.co.uk/van-build\n💷 What it cost (the honest numbers) → jonroams.co.uk/van-cost\n📊 Monthly expenses → jonroams.co.uk/monthly-expenses\n⚡ Electrical reports → jonroams.co.uk/electrical-reports\n\n🛠️ FREE TOOLS & CALCULATORS\n\n💷 Monthly Budget Calculator → jonroams.co.uk/monthly-cost-calculator\n🔨 Conversion Cost Calculator → jonroams.co.uk/conversion-cost-calculator\n☀️ Solar & Battery Sizing Calculator → jonroams.co.uk/solar-sizing-calculator\n⛽ Fuel Cost Calculator → jonroams.co.uk/fuel-cost-calculator\n🏕️ Wild Camping Checker → jonroams.co.uk/wild-camping-checker\n\n🎒 GEAR I ACTUALLY USE\n\n📷 Camera & filming gear → jonroams.co.uk/camera-gear\n💻 My desk setup → jonroams.co.uk/desk-setup\n🧺 Van life essentials → jonroams.co.uk/van-life-essentials\n🥾 Hiking gear → jonroams.co.uk/hiking-gear\n🏷️ Links & discount codes → jonroams.co.uk/links-discounts\n\n📬 SAY HELLO\n\n🤝 Work with me → jonroams@influint.co\n✉️ Get in touch → jonroams.co.uk/contact\n\nSolo travel, filmed and edited by me while living on the road.\n\nAll footage in this video was captured on location during my travels. No stock footage or AI-generated visuals — everything you see was filmed by me.\n\nSub Count: 1,999", "What Vanlife ALONE Is ACTUALLY Like", 10, 1411, false, "pFohl7T9Y1o", "https://www.youtube.com/watch?v=pFohl7T9Y1o", "/downloads/Vanlife/2026-04-10 What Vanlife ALONE Is ACTUALLY Like/What Vanlife ALONE Is ACTUALLY Like [pFohl7T9Y1o].mkv", false, ~U[2026-04-10 16:01:24Z]] 11:05:34.225 [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" = ?) [10] 11:05:34.226 [debug] QUERY OK source="media_items" db=0.3ms 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-27 17:00:28Z], 10] 11:05:34.228 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["His Social Media Links:\nHis Instagram - https://www.instagram.com/lucasravizza/\nHis Business Site - https://hoo.be/lucasravizza\n\nInterested In Being Featured On The Channel? : http://bit.ly/Tour-Application\n\nVIDEO DESCRIPTION:\n\nIn this detailed video tour, Lucas Ravizza unveils \"Odyssey,\" a custom-built van packed with innovative design features and high-end amenities. Lucas spent nine months meticulously crafting this van, ensuring that every inch serves a purpose while maintaining a sleek and functional aesthetic. \n\nKitchen and Storage Solutions\nLucas kicks off the tour by introducing the kitchen, a true marvel of space efficiency and thoughtful design. The centerpiece of this area is the set of French doors that serve as both a visual and functional highlight. These doors, fitted with a smart tint film, offer privacy with a simple click, transforming from transparent to opaque instantly. Behind these doors, Lucas stores his wine glasses, plates, and other essentials, making the most of every inch of space. \n\nThe kitchen also features a KitchenAid air fryer, capable of baking, broiling, and toasting, making it an all-in-one oven solution for life on the road. Nearby, a hidden charger is cleverly integrated under the countertop, offering a convenient spot to power up devices without cluttering the workspace. The kitchen includes ample food storage, with upper cabinets, a dual burner induction cooktop, and a spacious Dometic 140L fridge, which can store up to two weeks of food.\n\nAdvanced Heating and Power Systems\nOne of the most impressive aspects of Odyssey is the full hydronic heating system known as \"Rixen's.\" This system uses coolant from both the engine and a separate rear tank, offering a range of heating options, including air heat, heated floors, and instant hot water. The system is controlled by a simple interface that allows Lucas to preheat the engine on cold mornings, ensuring a smooth start without the wear of cold starts. The van is powered by a massive 1200 amp hour battery bank, capable of running high-demand appliances like the induction cooktop and air conditioning for extended periods.\n\nShower and Bathroom Setup\nThe shower in Odyssey is another example of Lucas's attention to detail and design. Featuring a Moen shower head with a water flow of 1.5 gallons per minute, the shower ensures efficient use of the 42-gallon water tank. The bathroom also includes the Laveo Dry Flush toilet, a hands-off, no-compost system that is easy to manage, though it requires refilling cartridges. The shower space is beautifully finished with Italian tile, adding a touch of luxury to this compact area. A walk-through design allows the shower to serve as a passage between the main living area and the cab, optimizing the van's layout.\n\nLounge and Sleeping Areas\nLucas has designed the lounge area to be both cozy and functional. Despite being smaller than in his previous builds, this space is perfectly tailored for relaxation. The bed, part of the Happy Jack system, is adjustable to different heights, allowing for flexible sleeping arrangements. Side capsules extend the sleeping space, accommodating Lucas’s 6'1\" frame comfortably. The lounge also features a Lagoon table and multiple outlets, ensuring convenience and connectivity.\n\nCustom Flooring and Finishing Touches\nThe flooring in Odyssey is a work of art in itself. Lucas custom-made each piece of the Chevron walnut floor, spending over 100 hours to ensure it was perfect. This level of craftsmanship extends to the Roman clay finish on the ceiling above the bed, giving the space a smooth, marbled effect that feels both luxurious and cozy.\n\nElectrical System and Off-Grid Capabilities\nOdyssey is equipped with a robust electrical system, including 1200 amp hours of lithium batteries, a 12-volt cruising comfort air conditioner, and 520 watts of solar power on the roof. This setup allows Lucas to live off-grid for up to two weeks, enjoying all the comforts of home while on the road. Lucas shares tips for managing the electrical system, including the importance of securing batterie" <> ..., "The Most Innovative Camper Van You Have Ever Seen", "c33156a6-f1ae-437e-957d-7b18e629bb00", 10, [], 1009, false, "dSYKabw_rgs", "https://www.youtube.com/watch?v=dSYKabw_rgs", 96, "/downloads/Vanlife/2024-08-27 The Most Innovative Camper Van You Have Ever Seen/The Most Innovative Camper Van You Have Ever Seen [dSYKabw_rgs].mp4", false, false, false, 1, ~U[2024-08-27 17:00:28Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "His Social Media Links:\nHis Instagram - https://www.instagram.com/lucasravizza/\nHis Business Site - https://hoo.be/lucasravizza\n\nInterested In Being Featured On The Channel? : http://bit.ly/Tour-Application\n\nVIDEO DESCRIPTION:\n\nIn this detailed video tour, Lucas Ravizza unveils \"Odyssey,\" a custom-built van packed with innovative design features and high-end amenities. Lucas spent nine months meticulously crafting this van, ensuring that every inch serves a purpose while maintaining a sleek and functional aesthetic. \n\nKitchen and Storage Solutions\nLucas kicks off the tour by introducing the kitchen, a true marvel of space efficiency and thoughtful design. The centerpiece of this area is the set of French doors that serve as both a visual and functional highlight. These doors, fitted with a smart tint film, offer privacy with a simple click, transforming from transparent to opaque instantly. Behind these doors, Lucas stores his wine glasses, plates, and other essentials, making the most of every inch of space. \n\nThe kitchen also features a KitchenAid air fryer, capable of baking, broiling, and toasting, making it an all-in-one oven solution for life on the road. Nearby, a hidden charger is cleverly integrated under the countertop, offering a convenient spot to power up devices without cluttering the workspace. The kitchen includes ample food storage, with upper cabinets, a dual burner induction cooktop, and a spacious Dometic 140L fridge, which can store up to two weeks of food.\n\nAdvanced Heating and Power Systems\nOne of the most impressive aspects of Odyssey is the full hydronic heating system known as \"Rixen's.\" This system uses coolant from both the engine and a separate rear tank, offering a range of heating options, including air heat, heated floors, and instant hot water. The system is controlled by a simple interface that allows Lucas to preheat the engine on cold mornings, ensuring a smooth start without the wear of cold starts. The van is powered by a massive 1200 amp hour battery bank, capable of running high-demand appliances like the induction cooktop and air conditioning for extended periods.\n\nShower and Bathroom Setup\nThe shower in Odyssey is another example of Lucas's attention to detail and design. Featuring a Moen shower head with a water flow of 1.5 gallons per minute, the shower ensures efficient use of the 42-gallon water tank. The bathroom also includes the Laveo Dry Flush toilet, a hands-off, no-compost system that is easy to manage, though it requires refilling cartridges. The shower space is beautifully finished with Italian tile, adding a touch of luxury to this compact area. A walk-through design allows the shower to serve as a passage between the main living area and the cab, optimizing the van's layo (truncated) 11:05:34.228 [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" = ?) [10] 11:05:34.229 [debug] QUERY OK source="media_items" db=0.3ms 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[2023-11-25 14:55:12Z], 10] 11:05:34.240 [debug] QUERY OK source="media_items" db=10.5ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Have a look at our latest trail ready Ford Transit van conversion! We added a bunch of new features to this one including: hidden projector screen, full size shower with slide out toilet, a Brava smart oven, heaps of exterior accessories, 2\" lift kit, and so much more— come on in! \n\nInterior:\nNovaKool r4500 DC fridge\nBrava smart oven\nEmpava 1800W dual burner induction cooktop: https://amzn.to/39MJxwP \nKraus 15 x 20 inch stainless steel sink: https://amzn.to/3kQVLql\nKraus stainless steel faucet\n12V Mi Heat heated floor\nNautilus retractable shower door\nXgimi MOGO 2 Pro Projector\nCuddy compositing toilet \nhttps://compocloset.com/?ref=Ppz_GFstb7bUHp\nand use code “goanywhere” for free shipping\nVancillary headliner shelf: https://amzn.to/3vTYzJz \nHavelock Wool insulation: \nhttps://havelockwool.com/\nSimarine PICO \nhttps://simarine.net/\n 5% Off Discount Code: tim&katie5\nGopower 3000W inverter/Charger\nCTEK Smartpass 120s: \nhttps://amzn.to/3kQVPGB \nCTEK D250SE: \nhttps://amzn.to/3KVOH6D\nVolthium 400AH self-heating 12V Lithium Phosphate Battery: \nhttps://volthium.com/en/\nEberspacher M2 B4L gas heater\nBlueSea fuse block: \nhttps://amzn.to/3P4R9La\nPeplink BR1 Max Pro 5G Pro router\nStarlink with our own design and 3D printed Trio Flatmount www.trioflatmount.com\nUndermount AC 12V: https://undermountac.com/collections/air-conditioning/products/complete-proair-12v-air-conditioner-for-class-b-van-trailer-or-camper\n\nExterior:\n\nVanspeed Shop Capsules\nCRL Bunk Half slider windows\nPeplink Mobility 42G 7 in 1 antenna\nMaxxAir Deluxe fan: \nhttps://amzn.to/38brXSE\nBlack Rhino Arsenal wheels\nFalkan Rubitrek tires\nRover Vans Accessory rack, ladder and tire carrier, expedition box\nKuat SR Piston bike racks\nCAtuned Ford Transit bumper\nWarn VR Evo 12-S winch\nBaja Designs LP6s\nAuxbeam 52\" lightbar\nBrightsource area lights\nThule Hideaway 10' awning\n8x Newpowa 100W solar panels\n1x Gorichsolar 100W slim solar panel\n\nSuspension:\nTransit Off Road 2\" Lift Kit\nSumosprings\nSupersprings\nCoil Sumosprings\n\nFor business inquiries please contact us via email: triovanconversions@gmail.com\n\nAs always, please LIKE 👍🏻 this video, SUBSCRIBE to our channel, and COMMENT if you have any questions or feedback!\n\nFollow us on Instagram for behind the scenes content: @thetriointransit \n\nThank you for your support! \n🙏🏻\n\nTIMESTAMPS:\n0:00 Intro\n0:35 Wet Bath\n2:50 Kitchen\n5:40 Bed Area\n7:49 Dinette\n8:37 Internet Systems\n9:26 Lighting\n9:49 Control Panel\n10:52 Cab Area\n12:11 Exterior Accessories\n13:19 Suspension\n13:55 Capsules\n14:11 Awning\n14:32 Rear Door Accessories\n15:41 Graywater system\n16:02 Rooftop\n17:20 Garage\n19:15 Electrical System\n20:18 Undermount Air Conditioning\n21:09 Conclusion", "VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE", "492babba-f794-4f12-b196-56e805189e8a", 10, [], 1301, false, "YAntvoL5VUc", "https://www.youtube.com/watch?v=YAntvoL5VUc", 97, "/downloads/Vanlife/2023-11-25 VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE/VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE [YAntvoL5VUc].mp4", false, false, false, 1, ~U[2023-11-25 14:55:12Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Have a look at our latest trail ready Ford Transit van conversion! We added a bunch of new features to this one including: hidden projector screen, full size shower with slide out toilet, a Brava smart oven, heaps of exterior accessories, 2\" lift kit, and so much more— come on in! \n\nInterior:\nNovaKool r4500 DC fridge\nBrava smart oven\nEmpava 1800W dual burner induction cooktop: https://amzn.to/39MJxwP \nKraus 15 x 20 inch stainless steel sink: https://amzn.to/3kQVLql\nKraus stainless steel faucet\n12V Mi Heat heated floor\nNautilus retractable shower door\nXgimi MOGO 2 Pro Projector\nCuddy compositing toilet \nhttps://compocloset.com/?ref=Ppz_GFstb7bUHp\nand use code “goanywhere” for free shipping\nVancillary headliner shelf: https://amzn.to/3vTYzJz \nHavelock Wool insulation: \nhttps://havelockwool.com/\nSimarine PICO \nhttps://simarine.net/\n 5% Off Discount Code: tim&katie5\nGopower 3000W inverter/Charger\nCTEK Smartpass 120s: \nhttps://amzn.to/3kQVPGB \nCTEK D250SE: \nhttps://amzn.to/3KVOH6D\nVolthium 400AH self-heating 12V Lithium Phosphate Battery: \nhttps://volthium.com/en/\nEberspacher M2 B4L gas heater\nBlueSea fuse block: \nhttps://amzn.to/3P4R9La\nPeplink BR1 Max Pro 5G Pro router\nStarlink with our own design and 3D printed Trio Flatmount www.trioflatmount.com\nUndermount AC 12V: https://undermountac.com/collections/air-conditioning/products/complete-proair-12v-air-conditioner-for-class-b-van-trailer-or-camper\n\nExterior:\n\nVanspeed Shop Capsules\nCRL Bunk Half slider windows\nPeplink Mobility 42G 7 in 1 antenna\nMaxxAir Deluxe fan: \nhttps://amzn.to/38brXSE\nBlack Rhino Arsenal wheels\nFalkan Rubitrek tires\nRover Vans Accessory rack, ladder and tire carrier, expedition box\nKuat SR Piston bike racks\nCAtuned Ford Transit bumper\nWarn VR Evo 12-S winch\nBaja Designs LP6s\nAuxbeam 52\" lightbar\nBrightsource area lights\nThule Hideaway 10' awning\n8x Newpowa 100W solar panels\n1x Gorichsolar 100W slim solar panel\n\nSuspension:\nTransit Off Road 2\" Lift Kit\nSumosprings\nSupersprings\nCoil Sumosprings\n\nFor business inquiries please contact us via email: triovanconversions@gmail.com\n\nAs always, please LIKE 👍🏻 this video, SUBSCRIBE to our channel, and COMMENT if you have any questions or feedback!\n\nFollow us on Instagram for behind the scenes content: @thetriointransit \n\nThank you for your support! \n🙏🏻\n\nTIMESTAMPS:\n0:00 Intro\n0:35 Wet Bath\n2:50 Kitchen\n5:40 Bed Area\n7:49 Dinette\n8:37 Internet Systems\n9:26 Lighting\n9:49 Control Panel\n10:52 Cab Area\n12:11 Exterior Accessories\n13:19 Suspension\n13:55 Capsules\n14:11 Awning\n14:32 Rear Door Accessories\n15:41 Graywater system\n16:02 Rooftop\n17:20 Garage\n19:15 Electrical System\n20:18 Undermount Air Conditioning\n21:09 Conclusion", "VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE", 10, 1301, false, "YAntvoL5VUc", "https://www.youtube.com/watch?v=YAntvoL5VUc", "/downloads/Vanlife/2023-11-25 VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE/VAN TOUR | Transit Van Converted to Trail Ready Tiny Home for VAN LIFE [YAntvoL5VUc].mp4", false, ~U[2023-11-25 14:55:12Z]] 11:05:34.240 [debug] QUERY OK source="sources" db=0.2ms idle=14.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.241 [debug] QUERY OK source="media_items" db=0.3ms idle=12.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-08 12:00:21Z], 10] 11:05:34.242 [debug] QUERY OK source="media_items" db=0.5ms idle=12.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The video many have asked for; the full explanation of my \"free hot water\" set up, using a heat exchanger and a closed loop glycol system. A passive system that takes advantage of the fact that you are driving anyway. Why not harness that wasted energy to make hot water every time you drive!\n#onahumbleroad\n#customvanbuild", "Make hot water in your van, while you drive!", "4f8d766b-cdb6-4cc9-9d37-830bf2a4cb71", 10, [], 707, false, "xTFbJQTjEa8", "https://www.youtube.com/watch?v=xTFbJQTjEa8", 98, "/downloads/Vanlife/2021-08-08 Make hot water in your van, while you drive!/Make hot water in your van, while you drive! [xTFbJQTjEa8].mp4", false, false, false, 1, ~U[2021-08-08 12:00:21Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The video many have asked for; the full explanation of my \"free hot water\" set up, using a heat exchanger and a closed loop glycol system. A passive system that takes advantage of the fact that you are driving anyway. Why not harness that wasted energy to make hot water every time you drive!\n#onahumbleroad\n#customvanbuild", "Make hot water in your van, while you drive!", 10, 707, false, "xTFbJQTjEa8", "https://www.youtube.com/watch?v=xTFbJQTjEa8", "/downloads/Vanlife/2021-08-08 Make hot water in your van, while you drive!/Make hot water in your van, while you drive! [xTFbJQTjEa8].mp4", false, ~U[2021-08-08 12:00:21Z]] 11:05:34.242 [debug] QUERY OK source="sources" db=0.1ms idle=13.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.243 [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-10-26 12:00:14Z], 10] 11:05:34.243 [debug] QUERY OK source="media_items" db=0.4ms idle=2.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A masterclass teaching moment for those who want to use 8020 extruded aluminum in their camper van build. This segment dives into the most common fittings. The why, how and where they are used. Explained by George Mauro of Humble Road, LLC\n#onahumbleroad #8020", "Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road", "7002422b-18d0-448c-93d4-154ea2d61430", 10, [], 1684, false, "7uO2mWpkNBg", "https://www.youtube.com/watch?v=7uO2mWpkNBg", 99, "/downloads/Vanlife/2025-10-26 Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road/Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road [7uO2mWpkNBg].mp4", false, false, false, 1, ~U[2025-10-26 12:00:14Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "A masterclass teaching moment for those who want to use 8020 extruded aluminum in their camper van build. This segment dives into the most common fittings. The why, how and where they are used. Explained by George Mauro of Humble Road, LLC\n#onahumbleroad #8020", "Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road", 10, 1684, false, "7uO2mWpkNBg", "https://www.youtube.com/watch?v=7uO2mWpkNBg", "/downloads/Vanlife/2025-10-26 Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road/Building a camper van? Thinking about using 8020 aluminum? 8020 fittings explained by Humble Road [7uO2mWpkNBg].mp4", false, ~U[2025-10-26 12:00:14Z]] 11:05:34.244 [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" = ?) [10] 11:05:34.244 [debug] QUERY OK source="media_items" db=0.3ms 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[2022-10-16 12:00:06Z], 10] 11:05:34.245 [debug] QUERY OK source="media_items" db=0.6ms idle=2.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["After years of working with 8020 extruded aluminum profiles, I have developed a few valuable tricks to make the build go smoother and create a better result. If you are working with 8020, this is the most important video you will ever watch. Trust me... 😊\n\nLINK TO THE GOOD TOOLS on the Humble Road website:\nhttps://www.humbleroad.tv/amazon-affiliate\n___________________________________\nYeah Yeah by Audionautix is licensed under a Creative Commons Attribution 4.0 license. https://creativecommons.org/licenses/by/4.0/\nArtist: http://audionautix.com/\n@humbleroad #onahumbleroad #customvanbuild #8020", "8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build", "198d245b-10f8-4fff-bc72-43526909ad38", 10, [], 1480, false, "AKssPWSYZwg", "https://www.youtube.com/watch?v=AKssPWSYZwg", 100, "/downloads/Vanlife/2022-10-16 8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build/8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build [AKssPWSYZwg].mp4", false, false, false, 1, ~U[2022-10-16 12:00:06Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "After years of working with 8020 extruded aluminum profiles, I have developed a few valuable tricks to make the build go smoother and create a better result. If you are working with 8020, this is the most important video you will ever watch. Trust me... 😊\n\nLINK TO THE GOOD TOOLS on the Humble Road website:\nhttps://www.humbleroad.tv/amazon-affiliate\n___________________________________\nYeah Yeah by Audionautix is licensed under a Creative Commons Attribution 4.0 license. https://creativecommons.org/licenses/by/4.0/\nArtist: http://audionautix.com/\n@humbleroad #onahumbleroad #customvanbuild #8020", "8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build", 10, 1480, false, "AKssPWSYZwg", "https://www.youtube.com/watch?v=AKssPWSYZwg", "/downloads/Vanlife/2022-10-16 8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build/8020 MASTER CLASS - Deep dive: how to use 8020 extruded aluminum in your van build [AKssPWSYZwg].mp4", false, ~U[2022-10-16 12:00:06Z]] 11:05:34.246 [debug] QUERY OK source="sources" db=0.2ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.246 [debug] QUERY OK source="media_items" db=0.3ms 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[2021-08-25 12:00:08Z], 10] 11:05:34.247 [debug] QUERY OK source="media_items" db=0.5ms idle=2.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Many people romanticize the thought of a long hot shower in their van. While it is absolutely possible, the actual day to day reality of a recirculating shower may turn your thoughts elsewhere. Having to change or wash dirty disgusting filters is one reason. Understanding exactly how ineffective these systems are in terms of bacteria and health is another. In van life, a long hot shower is easily enjoyed any time anywhere in the country with a gym membership. Use the van shower for the convenience of a good clean quick shower. And don't forget to subscribe for more innovative design ideas for your van build.\n\n#customvanbuild\n#onahumbleroad", "Recirculating shower in a van? Just my humble opinion...", "9c18d206-98dc-48be-bdc3-11d1716c88d8", 10, [], 268, false, "JIgRLKiRjhw", "https://www.youtube.com/watch?v=JIgRLKiRjhw", 101, "/downloads/Vanlife/2021-08-25 Recirculating shower in a van? Just my humble opinion..#/Recirculating shower in a van? Just my humble opinion... [JIgRLKiRjhw].mp4", false, false, false, 1, ~U[2021-08-25 12:00:08Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Many people romanticize the thought of a long hot shower in their van. While it is absolutely possible, the actual day to day reality of a recirculating shower may turn your thoughts elsewhere. Having to change or wash dirty disgusting filters is one reason. Understanding exactly how ineffective these systems are in terms of bacteria and health is another. In van life, a long hot shower is easily enjoyed any time anywhere in the country with a gym membership. Use the van shower for the convenience of a good clean quick shower. And don't forget to subscribe for more innovative design ideas for your van build.\n\n#customvanbuild\n#onahumbleroad", "Recirculating shower in a van? Just my humble opinion...", 10, 268, false, "JIgRLKiRjhw", "https://www.youtube.com/watch?v=JIgRLKiRjhw", "/downloads/Vanlife/2021-08-25 Recirculating shower in a van? Just my humble opinion..#/Recirculating shower in a van? Just my humble opinion... [JIgRLKiRjhw].mp4", false, ~U[2021-08-25 12:00:08Z]] 11:05:34.247 [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" = ?) [10] 11:05:34.248 [debug] QUERY OK source="media_items" db=0.3ms 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[2025-09-14 12:00:14Z], 10] 11:05:34.248 [debug] QUERY OK source="media_items" db=0.3ms idle=2.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Humble Road custom bed lift is ready for prime time! Van life will never be the same!\n\n#onahumbleroad #customtransitvan #customvanbuild", "Humble Road custom BED LIFT and a Japanese shower all in one van!", "ff0f8c68-0f99-4a1a-8177-55e41c8f5996", 10, [], 618, false, "9PaUTwXo0K8", "https://www.youtube.com/watch?v=9PaUTwXo0K8", 102, "/downloads/Vanlife/2025-09-14 Humble Road custom BED LIFT and a Japanese shower all in one van!/Humble Road custom BED LIFT and a Japanese shower all in one van! [9PaUTwXo0K8].mp4", false, false, false, 1, ~U[2025-09-14 12:00:14Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The Humble Road custom bed lift is ready for prime time! Van life will never be the same!\n\n#onahumbleroad #customtransitvan #customvanbuild", "Humble Road custom BED LIFT and a Japanese shower all in one van!", 10, 618, false, "9PaUTwXo0K8", "https://www.youtube.com/watch?v=9PaUTwXo0K8", "/downloads/Vanlife/2025-09-14 Humble Road custom BED LIFT and a Japanese shower all in one van!/Humble Road custom BED LIFT and a Japanese shower all in one van! [9PaUTwXo0K8].mp4", false, ~U[2025-09-14 12:00:14Z]] 11:05:34.249 [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" = ?) [10] 11:05:34.249 [debug] QUERY OK source="media_items" db=0.3ms idle=2.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-07 13:01:25Z], 10] 11:05:34.250 [debug] QUERY OK source="media_items" db=0.4ms idle=2.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Humble Road custom van studio will always use a custom made stainless steel shower pan with multiple drain points. But the real fun begins when the team dreams up the boardwalk that inserts into the shower pan. Conventional in never considered.\n\n\n#onahumbleroad #showerpan #customvanbuild", "SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio.", "3ba24861-46f4-4a7c-8a6e-4004a5eb99cd", 10, [], 577, false, "kcqGJd5fZW0", "https://www.youtube.com/watch?v=kcqGJd5fZW0", 103, "/downloads/Vanlife/2025-12-07 SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio#/SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio. [kcqGJd5fZW0].mp4", false, false, false, 1, ~U[2025-12-07 13:01:25Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The Humble Road custom van studio will always use a custom made stainless steel shower pan with multiple drain points. But the real fun begins when the team dreams up the boardwalk that inserts into the shower pan. Conventional in never considered.\n\n\n#onahumbleroad #showerpan #customvanbuild", "SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio.", 10, 577, false, "kcqGJd5fZW0", "https://www.youtube.com/watch?v=kcqGJd5fZW0", "/downloads/Vanlife/2025-12-07 SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio#/SHOWER BOARDWALK. Another artful creation by the craftsmen at the Humble Road custom van studio. [kcqGJd5fZW0].mp4", false, ~U[2025-12-07 13:01:25Z]] 11:05:34.250 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.251 [debug] QUERY OK source="media_items" db=0.3ms idle=2.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-16 13:00:05Z], 10] 11:05:34.252 [debug] QUERY OK source="media_items" db=0.5ms idle=2.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In the first of a series, George explains best practices for installing a water heater in your van.\n\n#onahumbleroad #plumbinginyourvan #customvanbuild", "Pro tips on installing a water heater in your van.", "155228b2-a001-42d1-becc-239a1e359e89", 10, [], 1049, false, "0ws1xNKIVls", "https://www.youtube.com/watch?v=0ws1xNKIVls", 104, "/downloads/Vanlife/2025-11-16 Pro tips on installing a water heater in your van#/Pro tips on installing a water heater in your van. [0ws1xNKIVls].mp4", false, false, false, 1, ~U[2025-11-16 13:00:05Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "In the first of a series, George explains best practices for installing a water heater in your van.\n\n#onahumbleroad #plumbinginyourvan #customvanbuild", "Pro tips on installing a water heater in your van.", 10, 1049, false, "0ws1xNKIVls", "https://www.youtube.com/watch?v=0ws1xNKIVls", "/downloads/Vanlife/2025-11-16 Pro tips on installing a water heater in your van#/Pro tips on installing a water heater in your van. [0ws1xNKIVls].mp4", false, ~U[2025-11-16 13:00:05Z]] 11:05:34.252 [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" = ?) [10] 11:05:34.252 [debug] QUERY OK source="media_items" db=0.3ms idle=2.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-07 12:00:10Z], 10] 11:05:34.254 [debug] QUERY OK source="media_items" db=0.8ms idle=2.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Discussion of van construction using wood vs 8020 (extruded aluminum).\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nDrop-in Electrical and Plumbing Systems:\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n=============================================================\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n=============================================================\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n=============================================================\nUpper Cabinet Tips Video: https://youtu.be/4uIwZMStO7Y?si=0nHNC-v6TlitZ57N\n=============================================================\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips", "5e504765-f477-4740-8f91-0ef12f4e94af", 10, [], 1681, false, "ELhWLoCdG8o", "https://www.youtube.com/watch?v=ELhWLoCdG8o", 105, "/downloads/Vanlife/2024-04-07 Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips/Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips [ELhWLoCdG8o].mkv", false, false, false, 1, ~U[2024-04-07 12:00:10Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Discussion of van construction using wood vs 8020 (extruded aluminum).\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nDrop-in Electrical and Plumbing Systems:\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n=============================================================\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n=============================================================\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n=============================================================\nUpper Cabinet Tips Video: https://youtu.be/4uIwZMStO7Y?si=0nHNC-v6TlitZ57N\n=============================================================\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips", 10, 1681, false, "ELhWLoCdG8o", "https://www.youtube.com/watch?v=ELhWLoCdG8o", "/downloads/Vanlife/2024-04-07 Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips/Van Cabinetry: Wood vs. 8020 (extruded aluminum) | Full-time Builder Shares Pro Tips [ELhWLoCdG8o].mkv", false, ~U[2024-04-07 12:00:10Z]] 11:05:34.254 [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" = ?) [10] 11:05:34.255 [debug] QUERY OK source="media_items" db=0.3ms 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[2024-03-17 12:00:05Z], 10] 11:05:34.256 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We share our top tips for building van upper cabinets using extruded aluminum (8020).\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n=============================================================================\nWhere we buy our extruded aluminum bars and hardware: \nhttps://tinyurl.com/24m52thp\n=============================================================================\n5/32\" Allen Wrench: https://amzn.to/3vdfnOk\n=============================================================================\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n=============================================================================\nWatch this video next. Van tour of our latest build: https://youtu.be/NGxf-97JO5M?si=OnB4kp3Qj4kyvHs9\n=============================================================================\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n=============================================================================\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n=============================================================================\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n=============================================================================\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n=============================================================================\nABOUT\nWe share all our tips and tricks for building upper cabinets using extruded aluminum (8020).\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n0:00 Intro\n0:30 Extrusions we use\n2:15 Fasteners we use\n7:55 Attaching cabinet to van\n10:07 Lining the cabinets\n12:58 Utrusta Hinges\n17:42 Where we buy extruded aluminum\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum)", "8b51d29e-2640-4ced-93e1-64ee1552caf2", 10, [], 1181, false, "4uIwZMStO7Y", "https://www.youtube.com/watch?v=4uIwZMStO7Y", 106, "/downloads/Vanlife/2024-03-17 Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum)/Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum) [4uIwZMStO7Y].mkv", false, false, false, 1, ~U[2024-03-17 12:00:05Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "We share our top tips for building van upper cabinets using extruded aluminum (8020).\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n=============================================================================\nWhere we buy our extruded aluminum bars and hardware: \nhttps://tinyurl.com/24m52thp\n=============================================================================\n5/32\" Allen Wrench: https://amzn.to/3vdfnOk\n=============================================================================\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n=============================================================================\nWatch this video next. Van tour of our latest build: https://youtu.be/NGxf-97JO5M?si=OnB4kp3Qj4kyvHs9\n=============================================================================\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n=============================================================================\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n=============================================================================\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n=============================================================================\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n=============================================================================\nABOUT\nWe share all our tips and tricks for building upper cabinets using extruded aluminum (8020).\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n0:00 Intro\n0:30 Extrusions we use\n2:15 Fasteners we use\n7:55 Attaching cabinet to van\n10:07 Lining the cabinets\n12:58 Utrusta Hinges\n17:42 Where we buy extruded aluminum\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum)", 10, 1181, false, "4uIwZMStO7Y", "https://www.youtube.com/watch?v=4uIwZMStO7Y", "/downloads/Vanlife/2024-03-17 Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum)/Pro Tips: Building Van Upper Cabinets Using 8020 (Extruded Aluminum) [4uIwZMStO7Y].mkv", false, ~U[2024-03-17 12:00:05Z]] 11:05:34.256 [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" = ?) [10] 11:05:34.257 [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-05-10 13:49:24Z], 10] 11:05:34.258 [debug] QUERY OK source="media_items" db=0.6ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we do a deep dive into electrical and plumbing systems for van conversions.\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nDROP-IN ELECTRICAL & PLUMBING SYSTEMS: https://www.thrivecraftedvans.com/drop-in-electrical-system\n\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Camper Van Electrical and Plumbing System Guide", "38c35052-8ab6-4991-8526-19c18ec0e5e0", 10, [], 2050, false, "jBHUjmEHuQM", "https://www.youtube.com/watch?v=jBHUjmEHuQM", 107, "/downloads/Vanlife/2026-05-10 Camper Van Electrical and Plumbing System Guide/Camper Van Electrical and Plumbing System Guide [jBHUjmEHuQM].mkv", false, false, false, 1, ~U[2026-05-10 13:49:24Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "In this video we do a deep dive into electrical and plumbing systems for van conversions.\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nDROP-IN ELECTRICAL & PLUMBING SYSTEMS: https://www.thrivecraftedvans.com/drop-in-electrical-system\n\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Camper Van Electrical and Plumbing System Guide", 10, 2050, false, "jBHUjmEHuQM", "https://www.youtube.com/watch?v=jBHUjmEHuQM", "/downloads/Vanlife/2026-05-10 Camper Van Electrical and Plumbing System Guide/Camper Van Electrical and Plumbing System Guide [jBHUjmEHuQM].mkv", false, ~U[2026-05-10 13:49:24Z]] 11:05:34.258 [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" = ?) [10] 11:05:34.259 [debug] QUERY OK source="media_items" db=0.3ms idle=2.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-17 19:40:35Z], 10] 11:05:34.260 [debug] QUERY OK source="media_items" db=0.9ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Van flooring tips and tricks.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\nLonger description of video..........\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "What’s The Best Way To Install Van Flooring?", "fd5ae281-a7e0-4c4c-bf9a-d64070d3bd03", 10, [], 1009, false, "-Pl_4HKEQxU", "https://www.youtube.com/watch?v=-Pl_4HKEQxU", 108, "/downloads/Vanlife/2025-05-17 What’s The Best Way To Install Van Flooring?/What’s The Best Way To Install Van Flooring? [-Pl_4HKEQxU].mkv", false, false, false, 1, ~U[2025-05-17 19:40:35Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Van flooring tips and tricks.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\nLonger description of video..........\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "What’s The Best Way To Install Van Flooring?", 10, 1009, false, "-Pl_4HKEQxU", "https://www.youtube.com/watch?v=-Pl_4HKEQxU", "/downloads/Vanlife/2025-05-17 What’s The Best Way To Install Van Flooring?/What’s The Best Way To Install Van Flooring? [-Pl_4HKEQxU].mkv", false, ~U[2025-05-17 19:40:35Z]] 11:05:34.261 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.261 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=2.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-21 17:17:47Z], 10] 11:05:34.262 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Which type of walls and ceiling material are best for a van build?\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nProducts mentioned in this video:\nShiplap: https://www.homedepot.com/p/ARAUCO-9-16-in-x-5-1-4-in-x-8-ft-Primed-Pine-Nickel-Gap-Ship-Lap-Board-6-Pieces-Per-Box-0028994/301688279\nMarine Adhesive: https://amzn.to/4d6yY3E\nSpray Adhesive: https://amzn.to/3UteXNI\nPin Nailer: https://amzn.to/3W6oRG4\nFabric we use: https://pantherrvproducts.com/marathon/\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\nLonger description of video..........\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Walls and Ceilings | Pro Builder Shares Tips", "8f6f03c3-d230-4736-992d-3b1d9c8b548a", 10, [], 1149, false, "gXYaVpNbUOc", "https://www.youtube.com/watch?v=gXYaVpNbUOc", 109, "/downloads/Vanlife/2024-04-21 Van Walls and Ceilings | Pro Builder Shares Tips/Van Walls and Ceilings | Pro Builder Shares Tips [gXYaVpNbUOc].mkv", false, false, false, 1, ~U[2024-04-21 17:17:47Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Which type of walls and ceiling material are best for a van build?\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nProducts mentioned in this video:\nShiplap: https://www.homedepot.com/p/ARAUCO-9-16-in-x-5-1-4-in-x-8-ft-Primed-Pine-Nickel-Gap-Ship-Lap-Board-6-Pieces-Per-Box-0028994/301688279\nMarine Adhesive: https://amzn.to/4d6yY3E\nSpray Adhesive: https://amzn.to/3UteXNI\nPin Nailer: https://amzn.to/3W6oRG4\nFabric we use: https://pantherrvproducts.com/marathon/\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\nABOUT\nLonger description of video..........\n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Walls and Ceilings | Pro Builder Shares Tips", 10, 1149, false, "gXYaVpNbUOc", "https://www.youtube.com/watch?v=gXYaVpNbUOc", "/downloads/Vanlife/2024-04-21 Van Walls and Ceilings | Pro Builder Shares Tips/Van Walls and Ceilings | Pro Builder Shares Tips [gXYaVpNbUOc].mkv", false, ~U[2024-04-21 17:17:47Z]] 11:05:34.263 [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" = ?) [10] 11:05:34.263 [debug] QUERY OK source="media_items" db=0.3ms 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-01-21 14:59:16Z], 10] 11:05:34.265 [debug] QUERY OK source="media_items" db=1.1ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Ecoflow vs. a component-based electrical system using Victron components.\nDIY VAN BUILD PRODUCTS: https://www.thrivecraftedvans.com/build-materials\n\n================================================================================\nCORRECTION: This Ecoflow model is rated at 3,600 watts AC output and the Victron Multiplus 3000 is rated at 2,400 continuous watts of output.\n================================================================================\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\nThrive Freeze dried food delivered to your door each month:\nhttps://www.shopthrivefood.com/ \n\n➳ CUSTOM VAN CONVERSION: https://www.thrivecraftedvans.com\n\n➳ FULL LIST OF VAN BUILD PRODUCTS: https://www.thrivecraftedvans.com/build-materials\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n🚐 Looking to buy a van or have us do a custom conversion on your van? https://www.thrivecraftedvans.com\n\nEXPLORIST\n@EXPLORISTlife \nhttps://explorist.life\n\nCHAPTERS\n1:15 Overview\n2:58 Battery Capacities Amp Hours vs. Watt Hours\n5:20 AC Output\n6:37 DC Output\n7:50 Running an Air Conditioner\n10:40 Alternator Charging\n13:53 Solar Charging\n14:55 Shore Power\n15:28 Pricing\n18:20 Best Bang for Your Buck\n18:43 DIY Friendliness\n19:40 Expandability\n20:25 Inexpensive Battery Options\n21:15 Drawbacks\n23:05 Customer Support\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive Life freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nABOUT\nIn this video we compare the Ecoflow and a component-based electrical system using Victron components and Battle Born batteries. Which system is best for your build? Watch to find out.\nDisclosures: Some links in the description are affiliate links. As an Amazon Associate we earn a small commission from qualifying purchases.\n\n➳ AUDIO/VIDEO GEAR\n• Main Camera- Canon R6 Mark ii: https://amzn.to/3zTPW3b\n• Main Lens- Canon RF 14-35mm f4: https://amzn.to/3zBErNG\n• Microphone- Rode Wireless Pro: https://amzn.to/3FxYmQr\n• Action Camera- DJI Osmo Action 4: https://amzn.to/409Focq\n• Drone- DJI Mini 4 Pro: https://amzn.to/3QarQZu\n\n#vanlife #vanlayout #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Watch Before Buying an Ecoflow: Ecoflow vs Victron", "2d58fbb1-5968-4bd8-ae5d-9b244f108485", 10, [], 1481, false, "25nU2fnHknA", "https://www.youtube.com/watch?v=25nU2fnHknA", 110, "/downloads/Vanlife/2024-01-21 Watch Before Buying an Ecoflow: Ecoflow vs Victron/Watch Before Buying an Ecoflow: Ecoflow vs Victron [25nU2fnHknA].mkv", false, false, false, 1, ~U[2024-01-21 14:59:16Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Ecoflow vs. a component-based electrical system using Victron components.\nDIY VAN BUILD PRODUCTS: https://www.thrivecraftedvans.com/build-materials\n\n================================================================================\nCORRECTION: This Ecoflow model is rated at 3,600 watts AC output and the Victron Multiplus 3000 is rated at 2,400 continuous watts of output.\n================================================================================\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\nThrive Freeze dried food delivered to your door each month:\nhttps://www.shopthrivefood.com/ \n\n➳ CUSTOM VAN CONVERSION: https://www.thrivecraftedvans.com\n\n➳ FULL LIST OF VAN BUILD PRODUCTS: https://www.thrivecraftedvans.com/build-materials\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n🚐 Looking to buy a van or have us do a custom conversion on your van? https://www.thrivecraftedvans.com\n\nEXPLORIST\n@EXPLORISTlife \nhttps://explorist.life\n\nCHAPTERS\n1:15 Overview\n2:58 Battery Capacities Amp Hours vs. Watt Hours\n5:20 AC Output\n6:37 DC Output\n7:50 Running an Air Conditioner\n10:40 Alternator Charging\n13:53 Solar Charging\n14:55 Shore Power\n15:28 Pricing\n18:20 Best Bang for Your Buck\n18:43 DIY Friendliness\n19:40 Expandability\n20:25 Inexpensive Battery Options\n21:15 Drawbacks\n23:05 Customer Support\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive Life freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nABOUT\nIn this video we compare the Ecoflow and a component-based electrical system using Victron components and Battle Born batteries. Which system is best for your build? Watch to find out.\nDisclosures: Some links in the description are affiliate links. As an Amazon Associate we earn a small commission from qualifying purchases.\n\n➳ AUDIO/VIDEO GEAR\n• Main Camera- Canon R6 Mark ii: https://amzn.to/3zTPW3b\n• Main Lens- Canon RF 14-35mm f4: https://amzn.to/3zBErNG\n• Microphone- Rode Wireless Pro: https://amzn.to/3FxYmQr\n• Action Camera- DJI Osmo Action 4: https://amzn.to/409Focq\n• Drone- DJI Mini 4 Pro: https://amzn.to/3QarQZu\n\n#vanlife #vanlayout #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Watch Before Buying an Ecoflow: Ecoflow vs Victron", 10, 1481, false, "25nU2fnHknA", "https://www.youtube.com/watch?v=25nU2fnHknA", "/downloads/Vanlife/2024-01-21 Watch Before Buying an Ecoflow: Ecoflow vs Victron/Wat (truncated) 11:05:34.265 [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" = ?) [10] 11:05:34.266 [debug] QUERY OK source="media_items" db=0.3ms 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-18 14:00:18Z], 10] 11:05:34.267 [debug] QUERY OK source="media_items" db=0.7ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical & Plumbing Setup. Updated for 2026.", "32129dbe-16d5-4139-ac3f-f10bfc5b5cfb", 10, [], 1207, false, "CpqIkR4Ep1s", "https://www.youtube.com/watch?v=CpqIkR4Ep1s", 111, "/downloads/Vanlife/2026-01-18 Van Electrical & Plumbing Setup. Updated for 2026#/Van Electrical & Plumbing Setup. Updated for 2026. [CpqIkR4Ep1s].mkv", false, false, false, 1, ~U[2026-01-18 14:00:18Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical & Plumbing Setup. Updated for 2026.", 10, 1207, false, "CpqIkR4Ep1s", "https://www.youtube.com/watch?v=CpqIkR4Ep1s", "/downloads/Vanlife/2026-01-18 Van Electrical & Plumbing Setup. Updated for 2026#/Van Electrical & Plumbing Setup. Updated for 2026. [CpqIkR4Ep1s].mkv", false, ~U[2026-01-18 14:00:18Z]] 11:05:34.267 [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" = ?) [10] 11:05:34.268 [debug] QUERY OK source="media_items" db=0.3ms 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[2025-08-09 16:42:17Z], 10] 11:05:34.269 [debug] QUERY OK source="media_items" db=0.7ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How we get professional-looking paint finishes on our cabinetry.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nGRACO ULTRA QUICKSHOT: https://amzn.to/40Zbr0f\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "The Secret To Flawless Cabinet Painting!", "440c4e69-fc7c-4120-94bc-1c3ec8fe6f32", 10, [], 1150, false, "fKCwpCMO7aY", "https://www.youtube.com/watch?v=fKCwpCMO7aY", 112, "/downloads/Vanlife/2025-08-09 The Secret To Flawless Cabinet Painting!/The Secret To Flawless Cabinet Painting! [fKCwpCMO7aY].mkv", false, false, false, 1, ~U[2025-08-09 16:42:17Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "How we get professional-looking paint finishes on our cabinetry.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nGRACO ULTRA QUICKSHOT: https://amzn.to/40Zbr0f\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "The Secret To Flawless Cabinet Painting!", 10, 1150, false, "fKCwpCMO7aY", "https://www.youtube.com/watch?v=fKCwpCMO7aY", "/downloads/Vanlife/2025-08-09 The Secret To Flawless Cabinet Painting!/The Secret To Flawless Cabinet Painting! [fKCwpCMO7aY].mkv", false, ~U[2025-08-09 16:42:17Z]] 11:05:34.269 [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" = ?) [10] 11:05:34.270 [debug] QUERY OK source="media_items" db=0.3ms 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-02-16 17:42:19Z], 10] 11:05:34.272 [debug] QUERY OK source="media_items" db=2.3ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How to get a professional-looking finish in your van conversion.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nSAVE 15% OFF GOCODE PRODUCTS: https://gocodeoverland.com/discount/THRIVANSYT15\nDiscount Code: THRIVANSYT15\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Achieving a Professional Finish in Your Van Build", "dbe9d37c-1d54-4fc1-ad1d-41b93c6d946d", 10, [], 815, false, "Joc6_u8xR-g", "https://www.youtube.com/watch?v=Joc6_u8xR-g", 113, "/downloads/Vanlife/2025-02-16 Achieving a Professional Finish in Your Van Build/Achieving a Professional Finish in Your Van Build [Joc6_u8xR-g].mkv", false, false, false, 1, ~U[2025-02-16 17:42:19Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "How to get a professional-looking finish in your van conversion.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nSAVE 15% OFF GOCODE PRODUCTS: https://gocodeoverland.com/discount/THRIVANSYT15\nDiscount Code: THRIVANSYT15\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. In this video \n\n#vanlife #vanconversion #vanbuild #freezedried\n\n⏰ TIMECODES\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Achieving a Professional Finish in Your Van Build", 10, 815, false, "Joc6_u8xR-g", "https://www.youtube.com/watch?v=Joc6_u8xR-g", "/downloads/Vanlife/2025-02-16 Achieving a Professional Finish in Your Van Build/Achieving a Professional Finish in Your Van Build [Joc6_u8xR-g].mkv", false, ~U[2025-02-16 17:42:19Z]] 11:05:34.273 [debug] QUERY OK source="sources" db=0.2ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.273 [debug] QUERY OK source="media_items" db=0.3ms idle=4.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-27 12:00:54Z], 10] 11:05:34.274 [debug] QUERY OK source="media_items" db=0.5ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This 4X4 Sprinter was custom built for a couple who spend half their time on the water and the other half touring the country in luxury. Humble Road listened carefully to the \"wants\" \"needs\" and \"must haves\" of this seasoned traveling couple. The result was a combination of failsafe systems, ease of use in their day to day life in a van, elegant design and workmanship.\n\n#onahumbleroad #sprintervan #customvanbuild", "New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features!", "3c229161-a300-4b55-940f-697a389160ad", 10, [], 2406, false, "YNvPM-an3N4", "https://www.youtube.com/watch?v=YNvPM-an3N4", 114, "/downloads/Vanlife/2025-04-27 New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features!/New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features! [YNvPM-an3N4].mp4", false, false, false, 1, ~U[2025-04-27 12:00:54Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "This 4X4 Sprinter was custom built for a couple who spend half their time on the water and the other half touring the country in luxury. Humble Road listened carefully to the \"wants\" \"needs\" and \"must haves\" of this seasoned traveling couple. The result was a combination of failsafe systems, ease of use in their day to day life in a van, elegant design and workmanship.\n\n#onahumbleroad #sprintervan #customvanbuild", "New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features!", 10, 2406, false, "YNvPM-an3N4", "https://www.youtube.com/watch?v=YNvPM-an3N4", "/downloads/Vanlife/2025-04-27 New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features!/New 4x4 luxury van conversion by Humble Road. The yacht-like Roxie van tour is packed with features! [YNvPM-an3N4].mp4", false, ~U[2025-04-27 12:00:54Z]] 11:05:34.274 [debug] QUERY OK source="sources" db=0.1ms idle=4.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.275 [debug] QUERY OK source="media_items" db=0.3ms 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[2024-05-26 12:00:33Z], 10] 11:05:34.276 [debug] QUERY OK source="media_items" db=0.4ms idle=2.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The largest of our micro-camper vans, the Maxi-Me continues to develop into an awesome solo camper.\n\nMusic: https://www.purple-planet.com\n#onahumbleroad #maxi-mecampervan #customvanbuild #promastercampervan", "How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead.", "704120c4-5f03-4864-976b-7de43b1d3629", 10, [], 1042, false, "TJVk5wMd9e4", "https://www.youtube.com/watch?v=TJVk5wMd9e4", 115, "/downloads/Vanlife/2024-05-26 How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead#/How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead. [TJVk5wMd9e4].mp4", false, false, false, 2, ~U[2024-05-26 12:00:33Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The largest of our micro-camper vans, the Maxi-Me continues to develop into an awesome solo camper.\n\nMusic: https://www.purple-planet.com\n#onahumbleroad #maxi-mecampervan #customvanbuild #promastercampervan", "How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead.", 10, 1042, false, "TJVk5wMd9e4", "https://www.youtube.com/watch?v=TJVk5wMd9e4", "/downloads/Vanlife/2024-05-26 How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead#/How to build a small feature rich camper van. The Humble Road Solo Traveler, Maxi Me, forges ahead. [TJVk5wMd9e4].mp4", false, ~U[2024-05-26 12:00:33Z]] 11:05:34.276 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [10] 11:05:34.276 [debug] QUERY OK source="media_items" db=0.3ms idle=2.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-22 12:00:13Z], 10] 11:05:34.278 [debug] QUERY OK source="media_items" db=0.6ms idle=2.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Once you have all the components necessary for your particular build, spend some time composing them into the area you have designated. Be aware of the need to service or replace these items in the future. Will you have to tear apart the entire area to get at one component? That would be a nightmare! And don't forget to subscribe for more innovative design ideas for your van build.\n\n#onahumbleroad\n#customvanbuild", "When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely.", "78d09b98-e027-48d7-b32d-250ee92dbb5c", 10, [], 389, false, "Z2zDCHvMpZc", "https://www.youtube.com/watch?v=Z2zDCHvMpZc", 116, "/downloads/Vanlife/2021-08-22 When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely#/When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely. [Z2zDCHvMpZc].mp4", false, false, false, 1, ~U[2021-08-22 12:00:13Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Once you have all the components necessary for your particular build, spend some time composing them into the area you have designated. Be aware of the need to service or replace these items in the future. Will you have to tear apart the entire area to get at one component? That would be a nightmare! And don't forget to subscribe for more innovative design ideas for your van build.\n\n#onahumbleroad\n#customvanbuild", "When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely.", 10, 389, false, "Z2zDCHvMpZc", "https://www.youtube.com/watch?v=Z2zDCHvMpZc", "/downloads/Vanlife/2021-08-22 When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely#/When planning your VAN POWER AND WATER SYSTEMS, be sure to utilize the space wisely. [Z2zDCHvMpZc].mp4", false, ~U[2021-08-22 12:00:13Z]] 11:05:34.278 [debug] QUERY OK source="sources" db=0.2ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.278 [debug] QUERY OK source="media_items" db=0.2ms 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[2021-08-20 00:04:19Z], 10] 11:05:34.279 [debug] QUERY OK source="media_items" db=0.5ms idle=2.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["So you've decided to build a van? Many of the unknowns in building a van can be solved with very simple means if you have the right mindset. For example, here I demonstrate an oh-so-simple way to transfer measurements and screw locations from a plumbing manifold to the wall under the galley in my van build.\n#onahumbleroad\n#customvanbuild", "How to mount plumbing in your van using a sheet of paper!", "0b4fba6d-1bed-4db4-bbe6-f1f1a906fe09", 10, [], 290, false, "Qy3N8zrPr8o", "https://www.youtube.com/watch?v=Qy3N8zrPr8o", 117, "/downloads/Vanlife/2021-08-20 How to mount plumbing in your van using a sheet of paper!/How to mount plumbing in your van using a sheet of paper! [Qy3N8zrPr8o].mp4", false, false, false, 1, ~U[2021-08-20 00:04:19Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "So you've decided to build a van? Many of the unknowns in building a van can be solved with very simple means if you have the right mindset. For example, here I demonstrate an oh-so-simple way to transfer measurements and screw locations from a plumbing manifold to the wall under the galley in my van build.\n#onahumbleroad\n#customvanbuild", "How to mount plumbing in your van using a sheet of paper!", 10, 290, false, "Qy3N8zrPr8o", "https://www.youtube.com/watch?v=Qy3N8zrPr8o", "/downloads/Vanlife/2021-08-20 How to mount plumbing in your van using a sheet of paper!/How to mount plumbing in your van using a sheet of paper! [Qy3N8zrPr8o].mp4", false, ~U[2021-08-20 00:04:19Z]] 11:05:34.280 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [10] 11:05:34.280 [debug] QUERY OK source="media_items" db=0.3ms 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[2021-08-11 12:00:02Z], 10] 11:05:34.281 [debug] QUERY OK source="media_items" db=0.6ms idle=2.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I explain my reasoning and design of my 8020 charger rack. Two MPPT solar controllers and two DC/DC chargers all lined up and hanging in the van garage. Neatly tucked out of the way with easy access.\n#onahumbleroad\n#customvanbuild", "Build a custom rack for your MPPT and DC/DC chargers using 8020 aluminum profiles.", "12e6aebc-3414-4b5b-ae4a-ed47abd5bca3", 10, [], 391, false, "3jQZGtU5vhk", "https://www.youtube.com/watch?v=3jQZGtU5vhk", 118, "/downloads/Vanlife/2021-08-11 Build a custom rack for your MPPT and DC⧸DC chargers using 8020 aluminum profiles#/Build a custom rack for your MPPT and DC⧸DC chargers using 8020 aluminum profiles. [3jQZGtU5vhk].mp4", false, false, false, 1, ~U[2021-08-11 12:00:02Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "In this video I explain my reasoning and design of my 8020 charger rack. Two MPPT solar controllers and two DC/DC chargers all lined up and hanging in the van garage. Neatly tucked out of the way with easy access.\n#onahumbleroad\n#customvanbuild", "Build a custom rack for your MPPT and DC/DC chargers using 8020 aluminum profiles.", 10, 391, false, "3jQZGtU5vhk", "https://www.youtube.com/watch?v=3jQZGtU5vhk", "/downloads/Vanlife/2021-08-11 Build a custom rack for your MPPT and DC⧸DC chargers using 8020 aluminum profiles#/Build a custom rack for your MPPT and DC⧸DC chargers using 8020 aluminum profiles. [3jQZGtU5vhk].mp4", false, ~U[2021-08-11 12:00:02Z]] 11:05:34.281 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [10] 11:05:34.282 [debug] QUERY OK source="media_items" db=0.3ms 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[2021-08-04 12:00:19Z], 10] 11:05:34.287 [debug] QUERY OK source="media_items" db=0.6ms idle=2.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["You're finally out on the road, enjoying van life as you dreamed you would. And then the inevitable happens, you sprung a leak in your plumbing! Now what?! No water?! This is the single most important reason to build your plumbing system using zones. Zones allow you to isolate a bad plumbing line and continue on your way without effecting the rest of the plumbing system. Watch as I explain just how simple a zone manifold can be.\n#customvanbuild\n#onahumbleroad", "VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor/Pex.", "7f79a7b6-1fbb-4105-ba70-9be01d9d2d9d", 10, [], 372, false, "jBr0aLbz1nA", "https://www.youtube.com/watch?v=jBr0aLbz1nA", 119, "/downloads/Vanlife/2021-08-04 VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor⧸Pex#/VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor⧸Pex. [jBr0aLbz1nA].mp4", false, false, false, 1, ~U[2021-08-04 12:00:19Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "You're finally out on the road, enjoying van life as you dreamed you would. And then the inevitable happens, you sprung a leak in your plumbing! Now what?! No water?! This is the single most important reason to build your plumbing system using zones. Zones allow you to isolate a bad plumbing line and continue on your way without effecting the rest of the plumbing system. Watch as I explain just how simple a zone manifold can be.\n#customvanbuild\n#onahumbleroad", "VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor/Pex.", 10, 372, false, "jBr0aLbz1nA", "https://www.youtube.com/watch?v=jBr0aLbz1nA", "/downloads/Vanlife/2021-08-04 VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor⧸Pex#/VAN BUILD TIP SERIES: Building a 4 zone plumbing manifold using Uponor⧸Pex. [jBr0aLbz1nA].mp4", false, ~U[2021-08-04 12:00:19Z]] 11:05:34.291 [debug] QUERY OK source="sources" db=0.2ms queue=0.9ms idle=9.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.292 [debug] QUERY OK source="media_items" db=0.3ms idle=10.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-01 12:00:22Z], 10] 11:05:34.293 [debug] QUERY OK source="media_items" db=0.6ms idle=10.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Here is a well though out approach to house battery charging in a Promaster van build.\nThe decisions you make regarding your battery charging systems begin with an understanding of your particular constraints or limitations. In this Promaster build, I have advised the client against the second dedicated alternator, as they can be problematic in this chassis. So DC to DC chargers are the next best option, along with a robust solar array on the roof. Lastly, every build gets a shore power connection for those rare times you are in a campground or mooch-docking at a friends house.\n#onahumbleroad\n#customvanbuild", "In this van build, CRITICAL CHARGING DECISIONS must be made now.", "d4efff78-f4ba-4d75-809e-5992e433f377", 10, [], 469, false, "xMz4UTCOSww", "https://www.youtube.com/watch?v=xMz4UTCOSww", 120, "/downloads/Vanlife/2021-08-01 In this van build, CRITICAL CHARGING DECISIONS must be made now#/In this van build, CRITICAL CHARGING DECISIONS must be made now. [xMz4UTCOSww].mp4", false, false, false, 1, ~U[2021-08-01 12:00:22Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Here is a well though out approach to house battery charging in a Promaster van build.\nThe decisions you make regarding your battery charging systems begin with an understanding of your particular constraints or limitations. In this Promaster build, I have advised the client against the second dedicated alternator, as they can be problematic in this chassis. So DC to DC chargers are the next best option, along with a robust solar array on the roof. Lastly, every build gets a shore power connection for those rare times you are in a campground or mooch-docking at a friends house.\n#onahumbleroad\n#customvanbuild", "In this van build, CRITICAL CHARGING DECISIONS must be made now.", 10, 469, false, "xMz4UTCOSww", "https://www.youtube.com/watch?v=xMz4UTCOSww", "/downloads/Vanlife/2021-08-01 In this van build, CRITICAL CHARGING DECISIONS must be made now#/In this van build, CRITICAL CHARGING DECISIONS must be made now. [xMz4UTCOSww].mp4", false, ~U[2021-08-01 12:00:22Z]] 11:05:34.293 [debug] QUERY OK source="sources" db=0.2ms idle=10.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.294 [debug] QUERY OK source="media_items" db=0.3ms idle=10.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-06-14 12:00:22Z], 10] 11:05:34.294 [debug] QUERY OK source="media_items" db=0.5ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["When building a van, you should make images, relentlessly. Reference images are useful as time passes and your memory fades. \"Where did I run that wire?\" \"Is that pipe near where I need to drill?\" Take lots of pictures throughout the build.\n\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#vanbuild\n#customvan\n#vanlife", "Why you should make reference images when building a van", "02e3e9cf-720d-45aa-8a96-24b085975bb0", 10, [], 214, false, "sWNk0S5ItSw", "https://www.youtube.com/watch?v=sWNk0S5ItSw", 121, "/downloads/Vanlife/2020-06-14 Why you should make reference images when building a van/Why you should make reference images when building a van [sWNk0S5ItSw].mp4", false, false, false, 1, ~U[2020-06-14 12:00:22Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "When building a van, you should make images, relentlessly. Reference images are useful as time passes and your memory fades. \"Where did I run that wire?\" \"Is that pipe near where I need to drill?\" Take lots of pictures throughout the build.\n\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#vanbuild\n#customvan\n#vanlife", "Why you should make reference images when building a van", 10, 214, false, "sWNk0S5ItSw", "https://www.youtube.com/watch?v=sWNk0S5ItSw", "/downloads/Vanlife/2020-06-14 Why you should make reference images when building a van/Why you should make reference images when building a van [sWNk0S5ItSw].mp4", false, ~U[2020-06-14 12:00:22Z]] 11:05:34.295 [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" = ?) [10] 11:05:34.295 [debug] QUERY OK source="media_items" db=0.3ms 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[2019-12-22 13:00:05Z], 10] 11:05:34.296 [debug] QUERY OK source="media_items" db=0.5ms idle=2.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Vagabonds are a full time couple who know how to live on the road. As I continue to build their forever van, I am inspired to design simply and with purpose to accommodate their needs and exceed their expectations. Yes, even grey tanks are a thing of beauty in the Humble Road shop! \n\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#vanbuild\n#vanlife", "Grey tanks are hung with care under this Promaster van", "fc1e6312-96cf-4ccc-83ea-4680a3f25050", 10, [], 865, false, "YEdZLbHnmUA", "https://www.youtube.com/watch?v=YEdZLbHnmUA", 122, "/downloads/Vanlife/2019-12-22 Grey tanks are hung with care under this Promaster van/Grey tanks are hung with care under this Promaster van [YEdZLbHnmUA].mp4", false, false, false, 1, ~U[2019-12-22 13:00:05Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The Vagabonds are a full time couple who know how to live on the road. As I continue to build their forever van, I am inspired to design simply and with purpose to accommodate their needs and exceed their expectations. Yes, even grey tanks are a thing of beauty in the Humble Road shop! \n\nMusic: https://www.purple-planet.com\n#onahumbleroad\n#vanbuild\n#vanlife", "Grey tanks are hung with care under this Promaster van", 10, 865, false, "YEdZLbHnmUA", "https://www.youtube.com/watch?v=YEdZLbHnmUA", "/downloads/Vanlife/2019-12-22 Grey tanks are hung with care under this Promaster van/Grey tanks are hung with care under this Promaster van [YEdZLbHnmUA].mp4", false, ~U[2019-12-22 13:00:05Z]] 11:05:34.296 [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" = ?) [10] 11:05:34.297 [debug] QUERY OK source="media_items" db=0.3ms 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-02-19 13:00:29Z], 10] 11:05:34.299 [debug] QUERY OK source="media_items" db=1.2ms idle=2.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Common mistakes we see DIY van builders (and some pro builders) make.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nDrop-in Electrical and Plumbing Systems:\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\nMarine Adhesive: https://amzn.to/42Mfwon\n\nRubber Edge Trim: https://amzn.to/3UEz0Js\n\nDigital Level: https://amzn.to/3uDFAoP\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nABOUT\nIn this video we discuss the biggest mistakes we see in DIY van conversions. Avoiding these common mistakes will save you time, money and alleviate problems down the road.\n\n⏰ TIMECODES\n0:00 Intro\n0:50 Mistake #1\n2:55 Mistake #2\n6:40 Mistake #3\n10:40 Mistake #4\n11:25 Mistake #5\n15:10 Bonus Tip\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Avoid These 5 Van Build Mistakes!", "1dacf76e-f5aa-4d27-85ad-a1b3ace47885", 10, [], 1048, false, "O5AjJvRmaok", "https://www.youtube.com/watch?v=O5AjJvRmaok", 123, "/downloads/Vanlife/2024-02-19 Avoid These 5 Van Build Mistakes!/Avoid These 5 Van Build Mistakes! [O5AjJvRmaok].mkv", false, false, false, 1, ~U[2024-02-19 13:00:29Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Common mistakes we see DIY van builders (and some pro builders) make.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nDrop-in Electrical and Plumbing Systems:\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\nMarine Adhesive: https://amzn.to/42Mfwon\n\nRubber Edge Trim: https://amzn.to/3UEz0Js\n\nDigital Level: https://amzn.to/3uDFAoP\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nABOUT\nIn this video we discuss the biggest mistakes we see in DIY van conversions. Avoiding these common mistakes will save you time, money and alleviate problems down the road.\n\n⏰ TIMECODES\n0:00 Intro\n0:50 Mistake #1\n2:55 Mistake #2\n6:40 Mistake #3\n10:40 Mistake #4\n11:25 Mistake #5\n15:10 Bonus Tip\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Avoid These 5 Van Build Mistakes!", 10, 1048, false, "O5AjJvRmaok", "https://www.youtube.com/watch?v=O5AjJvRmaok", "/downloads/Vanlife/2024-02-19 Avoid These 5 Van Build Mistakes!/Avoid These 5 Van Build Mistakes! [O5AjJvRmaok].mkv", false, ~U[2024-02-19 13:00:29Z]] 11:05:34.299 [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" = ?) [10] 11:05:34.300 [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[2021-06-04 21:57:38Z], 10] 11:05:34.301 [debug] QUERY OK source="media_items" db=0.7ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join Mike and Marcia (figuratively) as they shower in the B Box using Advanced RV's recycle shower system. The system cleans shower water through a series of filters, reheats it to temperature, and can be used to flush the toilet.\n\nReminder - B Box 1 is available for sale. Check out all our available units at https://advanced-rv.com/pre-owned-vehicles-for-sale/\n\r\nFollow Us:\r\nFacebook: https://www.facebook.com/pg/AdvancedR...\r\nTwitter: https://twitter.com/Advanced_RV\r\nInstagram: https://www.instagram.com/AdvancedRV/", "20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System", "ef41d9b5-2b77-4ae3-b482-21938bcf3cea", 10, [], 174, false, "ntGb1gZDwjk", "https://www.youtube.com/watch?v=ntGb1gZDwjk", 124, "/downloads/Vanlife/2021-06-04 20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System/20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System [ntGb1gZDwjk].mp4", false, false, false, 1, ~U[2021-06-04 21:57:38Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Join Mike and Marcia (figuratively) as they shower in the B Box using Advanced RV's recycle shower system. The system cleans shower water through a series of filters, reheats it to temperature, and can be used to flush the toilet.\n\nReminder - B Box 1 is available for sale. Check out all our available units at https://advanced-rv.com/pre-owned-vehicles-for-sale/\n\r\nFollow Us:\r\nFacebook: https://www.facebook.com/pg/AdvancedR...\r\nTwitter: https://twitter.com/Advanced_RV\r\nInstagram: https://www.instagram.com/AdvancedRV/", "20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System", 10, 174, false, "ntGb1gZDwjk", "https://www.youtube.com/watch?v=ntGb1gZDwjk", "/downloads/Vanlife/2021-06-04 20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System/20 Minute RV Shower with 2 Gallons of Water | ARV Recycle Shower System [ntGb1gZDwjk].mp4", false, ~U[2021-06-04 21:57:38Z]] 11:05:34.301 [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" = ?) [10] 11:05:34.301 [debug] QUERY OK source="media_items" db=0.3ms idle=2.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-05 18:00:08Z], 10] 11:05:34.303 [debug] QUERY OK source="media_items" db=0.8ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We've been living in our Remodeled RV for a few months now, and everything seems to be working. We thought we'd give you an overview of how we plumbed our shower loop. This system can effectively give you an unlimited hot water shower using only a couple of gallons of water.\n\nWe are attempting the daunting task of designing and installing a recirculating, filtering shower system in our RV.\n\nBig Blue Filters: https://amzn.to/3ilhYsU\nActivated Carbon Filter: https://amzn.to/30rC3I2\n5 Micron Filters: https://amzn.to/33j3gys\nMotorized valves: https://amzn.to/3cQmqyO\nPex connectors: https://amzn.to/33lSIic\nPex crimper: https://amzn.to/3l4lYjb\nPex crimp ring: https://amzn.to/3iiFd77\npex piping: https://amzn.to/3ihJveJ\n5Gal Water storage tank: https://amzn.to/34eirs1\nHeat Exchanger: https://amzn.to/2G95DeA\nArduino Mega: https://amzn.to/2SfRjD8\nRelay Board: https://amzn.to/2GpgRLJ\nUV Filter: https://amzn.to/2SexgVO\n\nVisit our website for more information about locations and for photos of our trips and projects.\nWildLanterns.com\n\nMusic is from Epidemic Sound: https://www.epidemicsound.com/referral/tuvk35/\n\nSome of our Gear:\nSmall Camera: https://amzn.to/33Y6DL2\nOur Gimbal: https://amzn.to/3qLvStT\nCamera: https://amzn.to/37pp36Y\nGoPro: https://amzn.to/39sleyP\nMicrophone: https://amzn.to/2v8DvSR\nND Filter: https://amzn.to/2Gafwos\nGoPro Hero 8 Black: https://amzn.to/3bIFXjt\nGoPro Media Mod: https://gopro.com/en/us/shop/mounts-accessories/media-mod/AJFMD-001.html\n\nWe are a part of the Amazon Affiliate program. We get a small commission off of anything you buy from one of these links. So thank you!\n\n#tinyhouse #DIY #remodeling #DIYstorage #remodel #simpleliving #modernfarmhouse #RVbathroom #showerloop #recirculatingshower #hourshower", "Overview of Our Recirculating Shower | RV Renovation", "b2b2b401-ae75-4f2a-b5c7-82b0545483dd", 10, [], 650, false, "dhpBTra9bXs", "https://www.youtube.com/watch?v=dhpBTra9bXs", 125, "/downloads/Vanlife/2021-03-05 Overview of Our Recirculating Shower | RV Renovation/Overview of Our Recirculating Shower | RV Renovation [dhpBTra9bXs].mp4", false, false, false, 1, ~U[2021-03-05 18:00:08Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "We've been living in our Remodeled RV for a few months now, and everything seems to be working. We thought we'd give you an overview of how we plumbed our shower loop. This system can effectively give you an unlimited hot water shower using only a couple of gallons of water.\n\nWe are attempting the daunting task of designing and installing a recirculating, filtering shower system in our RV.\n\nBig Blue Filters: https://amzn.to/3ilhYsU\nActivated Carbon Filter: https://amzn.to/30rC3I2\n5 Micron Filters: https://amzn.to/33j3gys\nMotorized valves: https://amzn.to/3cQmqyO\nPex connectors: https://amzn.to/33lSIic\nPex crimper: https://amzn.to/3l4lYjb\nPex crimp ring: https://amzn.to/3iiFd77\npex piping: https://amzn.to/3ihJveJ\n5Gal Water storage tank: https://amzn.to/34eirs1\nHeat Exchanger: https://amzn.to/2G95DeA\nArduino Mega: https://amzn.to/2SfRjD8\nRelay Board: https://amzn.to/2GpgRLJ\nUV Filter: https://amzn.to/2SexgVO\n\nVisit our website for more information about locations and for photos of our trips and projects.\nWildLanterns.com\n\nMusic is from Epidemic Sound: https://www.epidemicsound.com/referral/tuvk35/\n\nSome of our Gear:\nSmall Camera: https://amzn.to/33Y6DL2\nOur Gimbal: https://amzn.to/3qLvStT\nCamera: https://amzn.to/37pp36Y\nGoPro: https://amzn.to/39sleyP\nMicrophone: https://amzn.to/2v8DvSR\nND Filter: https://amzn.to/2Gafwos\nGoPro Hero 8 Black: https://amzn.to/3bIFXjt\nGoPro Media Mod: https://gopro.com/en/us/shop/mounts-accessories/media-mod/AJFMD-001.html\n\nWe are a part of the Amazon Affiliate program. We get a small commission off of anything you buy from one of these links. So thank you!\n\n#tinyhouse #DIY #remodeling #DIYstorage #remodel #simpleliving #modernfarmhouse #RVbathroom #showerloop #recirculatingshower #hourshower", "Overview of Our Recirculating Shower | RV Renovation", 10, 650, false, "dhpBTra9bXs", "https://www.youtube.com/watch?v=dhpBTra9bXs", "/downloads/Vanlife/2021-03-05 Overview of Our Recirculating Shower | RV Renovation/Overview of Our Recirculating Shower | RV Renovation [dhpBTra9bXs].mp4", false, ~U[2021-03-05 18:00:08Z]] 11:05:34.303 [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" = ?) [10] 11:05:34.303 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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 19:47:29Z], 10] 11:05:34.306 [debug] QUERY OK source="media_items" db=1.8ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join us for an exclusive tour of the world's first 3D printed van, showcasing how innovation in 3d printing can create a surprising campervan experience. This unique van build redefines expectations for van life, proving that even a 3D printed vehicle can offer comfortable off grid living with amenities like a shower, fridge, and bed.\n\nhttps://bucksd.com/\n\nAll Jarrod Tocci Information:\nDIY Building Channel: @Tocrastudio \n\nWant to work together or feature your build?\n📩 Business inquiries: jarrod.tocci@thestation.io\n info@jarrodtocci.com\nFOLLOW ALONG:\nInstagram ➜ https://www.instagram.com/jarrodtocci \nWebsite ➜ https://jarrodtocci.com/", "The First EVER 3D Printed Camper Van (Stealth Build on eSprinter)", "3a566c37-2b41-43ed-950d-b78525fb0039", 10, [], 1497, false, "sq885l2ZmOA", "https://www.youtube.com/watch?v=sq885l2ZmOA", 126, "/downloads/Vanlife/2026-04-23 The First EVER 3D Printed Camper Van (Stealth Build on eSprinter)/The First EVER 3D Printed Camper Van (Stealth Build on eSprinter) [sq885l2ZmOA].mkv", false, false, false, 1, ~U[2026-04-23 19:47:29Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Join us for an exclusive tour of the world's first 3D printed van, showcasing how innovation in 3d printing can create a surprising campervan experience. This unique van build redefines expectations for van life, proving that even a 3D printed vehicle can offer comfortable off grid living with amenities like a shower, fridge, and bed.\n\nhttps://bucksd.com/\n\nAll Jarrod Tocci Information:\nDIY Building Channel: @Tocrastudio \n\nWant to work together or feature your build?\n📩 Business inquiries: jarrod.tocci@thestation.io\n info@jarrodtocci.com\nFOLLOW ALONG:\nInstagram ➜ https://www.instagram.com/jarrodtocci \nWebsite ➜ https://jarrodtocci.com/", "The First EVER 3D Printed Camper Van (Stealth Build on eSprinter)", 10, 1497, false, "sq885l2ZmOA", "https://www.youtube.com/watch?v=sq885l2ZmOA", "/downloads/Vanlife/2026-04-23 The First EVER 3D Printed Camper Van (Stealth Build on eSprinter)/The First EVER 3D Printed Camper Van (Stealth Build on eSprinter) [sq885l2ZmOA].mkv", false, ~U[2026-04-23 19:47:29Z]] 11:05:34.306 [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" = ?) [10] 11:05:34.307 [debug] QUERY OK source="media_items" db=0.3ms 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-02-06 15:02:02Z], 10] 11:05:34.308 [debug] QUERY OK source="media_items" db=1.0ms idle=3.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/kirbywinson/?hl=en\nHis Website: https://www.kurvdesign.com/gallery\n\nStep inside Baltica — Kirby’s 15th van build and easily his most creative conversion yet.\n\nThis one-of-a-kind smart van is built entirely from raw Baltic birch plywood and designed around Scandinavian minimalism, parametric woodworking, and functional art. Inspired by Kirby’s signature curved furniture builds, Baltica pushes the limits of what’s possible in van life design.\n\nFrom the moment you step inside, you’re surrounded by flowing wave-shaped wood cabinetry, curved kerf-cut walls, and slatted wood features that feel more like architecture than a vehicle. Every surface is perfectly crafted, sculpted, and completely unlike anything we’ve ever toured before.\n\nAnd then there’s the shower…\n\nYes — this van has a fully functional see-through plexiglass shower framed with slatted Baltic birch. It’s minimal, artistic, and honestly unreal to experience in person.\n\nBut Baltica isn’t just design — it’s a fully capable off-grid smart van loaded with serious tech:\n\n• Massive 900Ah electrical system\n• Full heating + air conditioning\n• Smart system controls\n• Hidden pop-up table (one of a kind design)\n• Huge couch storage\n• Interior pass-through\n• Built-in 3D printer 🤯\n\nEvery detail was engineered to blend beauty with functionality — from the parametric wave cabinetry to the sculpted couch framing that looks like it was carved by nature itself.\n\nKirby is known for building only one-of-one vans, but Baltica may be his most artistic and innovative build yet.\n\nIf you love van life, Scandinavian design, smart van tech, or next-level craftsmanship — this tour is something special.\n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "The Most Creative Van Ever Built / This Van Has a See-Through Shower", "8cd7b839-cf54-4871-a461-1cc80115ccc8", 10, [], 759, false, "FIKL5kGZaU0", "https://www.youtube.com/watch?v=FIKL5kGZaU0", 127, "/downloads/Vanlife/2026-02-06 The Most Creative Van Ever Built ⧸ This Van Has a See-Through Shower/The Most Creative Van Ever Built ⧸ This Van Has a See-Through Shower [FIKL5kGZaU0].mkv", false, false, false, 2, ~U[2026-02-06 15:02:02Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "🚀 FREE Training - How-to-Live Zero-Cost Vanlife: https://bit.ly/3L15isz\n📖 The Van Conversion Guide Book: https://www.thevanconversionguide.com/\n🎓 The DIYhero Course: https://diyhero.me/\n\n🚐 ABOUT THIS VAN 🚐 \nFollow them on Instagram: https://www.instagram.com/kirbywinson/?hl=en\nHis Website: https://www.kurvdesign.com/gallery\n\nStep inside Baltica — Kirby’s 15th van build and easily his most creative conversion yet.\n\nThis one-of-a-kind smart van is built entirely from raw Baltic birch plywood and designed around Scandinavian minimalism, parametric woodworking, and functional art. Inspired by Kirby’s signature curved furniture builds, Baltica pushes the limits of what’s possible in van life design.\n\nFrom the moment you step inside, you’re surrounded by flowing wave-shaped wood cabinetry, curved kerf-cut walls, and slatted wood features that feel more like architecture than a vehicle. Every surface is perfectly crafted, sculpted, and completely unlike anything we’ve ever toured before.\n\nAnd then there’s the shower…\n\nYes — this van has a fully functional see-through plexiglass shower framed with slatted Baltic birch. It’s minimal, artistic, and honestly unreal to experience in person.\n\nBut Baltica isn’t just design — it’s a fully capable off-grid smart van loaded with serious tech:\n\n• Massive 900Ah electrical system\n• Full heating + air conditioning\n• Smart system controls\n• Hidden pop-up table (one of a kind design)\n• Huge couch storage\n• Interior pass-through\n• Built-in 3D printer 🤯\n\nEvery detail was engineered to blend beauty with functionality — from the parametric wave cabinetry to the sculpted couch framing that looks like it was carved by nature itself.\n\nKirby is known for building only one-of-one vans, but Baltica may be his most artistic and innovative build yet.\n\nIf you love van life, Scandinavian design, smart van tech, or next-level craftsmanship — this tour is something special.\n\nCheck out my latest film on how to convert a van: https://youtu.be/ZHmv5Nzle14\n\nConnect with Nate Murphy:\n📸 Nate is on Instagram: http://bit.ly/2ZVaHri\nMy van is insured with Sheild Insurance: http://bit.ly/2MPCrs1\n\nDo you want to feature your van? Click here: https://bit.ly/39PxPhR\n#vanconversion #vanlife #vantour", "The Most Creative Van Ever Built / This Van Has a See-Through Shower", 10, 759, false, "FIKL5kGZaU0", "https://www.youtube.com/watch?v=FIKL5kGZaU0", "/downloads/Vanlife/2026-02-06 The Most Creative Van Ever Built ⧸ This Van Has a See-Through Shower/The Most Creative Van Ever Built ⧸ This Van Has a See-Through Shower [FIKL5kGZaU0].mkv", false, ~U[2026-02-06 15:02:02Z]] 11:05:34.308 [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" = ?) [10] 11:05:34.309 [debug] QUERY OK source="media_items" db=0.3ms 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-09-20 14:01:23Z], 10] 11:05:34.311 [debug] QUERY OK source="media_items" db=1.3ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["This One-Off Camper Van Has a Mind-Blowingly Creative Design With a Genius Workshop.\n\nEver dreamed of living life on the road in a camper van that's more like a luxury apartment on wheels? Step inside this jaw-dropping, custom-built Ram ProMaster 3500 van by Humble Road, designed for a solo traveler with a passion for adventure and craftsmanship.\n\nJoin me, Patrick Botticelli, as I get an exclusive sneak peek at this van before its owner takes delivery. We'll explore a van conversion unlike any you've seen before, featuring mind-blowing innovations and clever solutions for full-time living. From a stunning, retractable outdoor workbench to a hidden, slide-out indoor shower and toilet, every inch of this camper is engineered with purpose and elegance.\n\nWhat you'll discover inside this ultimate camper van tour:\n\nA \"Macintosh\" EcoFlow Power System: See how this user-friendly electrical setup provides 10,000 watt-hours of lithium power, keeping you charged and ready for anything.\n\nThe Ultimate Van Life Workbench: An absolute first! A real, built-in workbench with industry-standard 20mm holes, perfect for hobbies like fly-tying, silk-screening, and woodworking.\n\nThe Hidden Bathroom Revolution: A brilliant, space-saving design with a slide-out shower and a composting toilet that disappears into the wall.\n\nFree Hot Water On Demand: Learn about the glycol heating system that uses the van's engine to heat water while you drive.\n\nSmart Storage & Custom Details: Discover a full-size pantry, deep drawers, and unique, handcrafted features like beetle kill pine cabinetry and elegant custom handles.\n\nIf you're looking for van life inspiration, DIY conversion ideas, or just love seeing incredible engineering, you won't want to miss this tour!\n\nThey Hid a Full Bathroom in this Camper Van! (Unbelievable Space-Saving Design)\n\nChapter Selections for the Video\n0:00 - Introduction to the Ram ProMaster Tour\n0:30 - The Stunning Exterior & Custom Features\n1:59 - The Garage & EcoFlow Electrical System\n3:45 - Water Heater & Outdoor Amenities\n6:19 - Inside the Van: The Kitchen & Galley\n10:07 - The Amazing Fold-Out Workbench\n11:24 - The Kitchenette & Unique Van Storage\n17:00 - The Hidden, Slide-Out Shower Reveal\n20:45 - The Cockpit & Final Details\n21:50 - Interview Wrap-Up\n\n#vanlife\n#campervan\n#rampromaster\n#vanconversion \n\nFollow George & Humble Road:\nYouTube @HumbleRoad \nWebsite https://www.humbleroad.tv/\n\nThis channel explores the exciting world of vanlife, with your host Patrick Botticelli, showcasing custom camper van builds, 4x4 off-road adventures, and DIY conversion projects. Join Patrick for in-depth RV tours and inspiring travel stories!\n\nNew videos every Saturday at 10am eastern. Please subscribe for more awesome video tours. https://www.youtube.com/newjerseyoutdooradventures?sub_confirmation=1\n\nNew Jersey Outdoor Adventures With Patrick Botticelli Website\nhttps://newjerseyoutdooradventures.com/\n\nFollow New Jersey Outdoor Adventures on Social\nhttps://www.instagram.com/patrick_njoa\nhttps://www.facebook.com/newjerseyoutdooradventures/\n\nNJOA Merchandise\nhttps://www.youtube.com/channel/UCZ4P6JaFzImeSWPAr3gGGCQ/store\n\nThumbnail Art by \nhttp://www.motivedezign.com/\n\nMusic By Epidemic Sounds\nhttps://share.epidemicsound.com/7r0ua5\n\nAll content owned and distributed by NJO Rental Adventures LLC.", "He Hid a Full Bathroom in this Camper Van! (Unbelievable Genius Space-Saving Design)", "acef577e-9f12-4d65-8567-ea2b9a985c88", 10, [], 1429, false, "nWafde7cTCY", "https://www.youtube.com/watch?v=nWafde7cTCY", 128, "/downloads/Vanlife/2025-09-20 He Hid a Full Bathroom in this Camper Van! (Unbelievable Genius Space-Saving Design)/He Hid a Full Bathroom in this Camper Van! (Unbelievable Genius Space-Saving Design) [nWafde7cTCY].mp4", false, false, false, 1, ~U[2025-09-20 14:01:23Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "This One-Off Camper Van Has a Mind-Blowingly Creative Design With a Genius Workshop.\n\nEver dreamed of living life on the road in a camper van that's more like a luxury apartment on wheels? Step inside this jaw-dropping, custom-built Ram ProMaster 3500 van by Humble Road, designed for a solo traveler with a passion for adventure and craftsmanship.\n\nJoin me, Patrick Botticelli, as I get an exclusive sneak peek at this van before its owner takes delivery. We'll explore a van conversion unlike any you've seen before, featuring mind-blowing innovations and clever solutions for full-time living. From a stunning, retractable outdoor workbench to a hidden, slide-out indoor shower and toilet, every inch of this camper is engineered with purpose and elegance.\n\nWhat you'll discover inside this ultimate camper van tour:\n\nA \"Macintosh\" EcoFlow Power System: See how this user-friendly electrical setup provides 10,000 watt-hours of lithium power, keeping you charged and ready for anything.\n\nThe Ultimate Van Life Workbench: An absolute first! A real, built-in workbench with industry-standard 20mm holes, perfect for hobbies like fly-tying, silk-screening, and woodworking.\n\nThe Hidden Bathroom Revolution: A brilliant, space-saving design with a slide-out shower and a composting toilet that disappears into the wall.\n\nFree Hot Water On Demand: Learn about the glycol heating system that uses the van's engine to heat water while you drive.\n\nSmart Storage & Custom Details: Discover a full-size pantry, deep drawers, and unique, handcrafted features like beetle kill pine cabinetry and elegant custom handles.\n\nIf you're looking for van life inspiration, DIY conversion ideas, or just love seeing incredible engineering, you won't want to miss this tour!\n\nThey Hid a Full Bathroom in this Camper Van! (Unbelievable Space-Saving Design)\n\nChapter Selections for the Video\n0:00 - Introduction to the Ram ProMaster Tour\n0:30 - The Stunning Exterior & Custom Features\n1:59 - The Garage & EcoFlow Electrical System\n3:45 - Water Heater & Outdoor Amenities\n6:19 - Inside the Van: The Kitchen & Galley\n10:07 - The Amazing Fold-Out Workbench\n11:24 - The Kitchenette & Unique Van Storage\n17:00 - The Hidden, Slide-Out Shower Reveal\n20:45 - The Cockpit & Final Details\n21:50 - Interview Wrap-Up\n\n#vanlife\n#campervan\n#rampromaster\n#vanconversion \n\nFollow George & Humble Road:\nYouTube @HumbleRoad \nWebsite https://www.humbleroad.tv/\n\nThis channel explores the exciting world of vanlife, with your host Patrick Botticelli, showcasing custom camper van builds, 4x4 off-road adventures, and DIY conversion projects. Join Patrick for in-depth RV tours and inspiring travel stories!\n\nNew videos every Saturday at 10am eastern. Please subscribe for more awesome video tours. https://www.youtube.com/newjerseyoutdooradventures?sub_confirmation=1\n\nNew Jersey Outdoor Adventures With Patrick Botticelli Website\nhttps://newjerseyoutdooradventures.com/\n\nFollow New Jersey Outdoor Adventures on Social\nhttps://www.instagram.com/patrick_njoa\nhttps://www.facebook.com/newjerseyoutdooradventures/\n\nNJOA Merchandise\nhttps://www.youtube.com/channel/UCZ4P6JaFzImeSWPAr3gGGCQ/store\n\nThumbnail Art by \nhttp://www.motivedezign.com/\n\nMusic By Epidemic Sounds\nhttps://share.epidemicsound.com/7r0ua5\n\nAll content owned and distributed by NJO Rental Adventures LLC.", "He Hid a Full Bathroom in this Camper Van! (Unbelieva (truncated) 11:05:34.311 [debug] QUERY OK source="sources" db=0.1ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.312 [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[2024-03-31 20:00:38Z], 10] 11:05:34.327 [debug] QUERY OK source="media_items" db=15.1ms idle=3.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#vanconversion #vanlife #campervan #vanbuild #adventure #luxuryhomes #luxurydesign #diy #diyprojects #woodworking", "60 Second VAN BUILD | Luxury Design", "cb6c0308-d8af-4205-ae49-012f4df0b6a4", 10, [], 59, false, "-pbaWguwjwk", "https://www.youtube.com/watch?v=-pbaWguwjwk", 129, "/downloads/Vanlife/2024-03-31 60 Second VAN BUILD | Luxury Design/60 Second VAN BUILD | Luxury Design [-pbaWguwjwk].mp4", false, false, true, 1, ~U[2024-03-31 20:00:38Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "#vanconversion #vanlife #campervan #vanbuild #adventure #luxuryhomes #luxurydesign #diy #diyprojects #woodworking", "60 Second VAN BUILD | Luxury Design", 10, 59, false, "-pbaWguwjwk", "https://www.youtube.com/watch?v=-pbaWguwjwk", "/downloads/Vanlife/2024-03-31 60 Second VAN BUILD | Luxury Design/60 Second VAN BUILD | Luxury Design [-pbaWguwjwk].mp4", true, ~U[2024-03-31 20:00:38Z]] 11:05:34.328 [debug] QUERY OK source="sources" db=0.2ms idle=18.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.328 [debug] QUERY OK source="media_items" db=0.3ms idle=17.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-16 17:26:43Z], 10] 11:05:34.335 [debug] QUERY OK source="media_items" db=6.3ms idle=17.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Today, we take a quick tour of the original Odyssey and then head into our partner warehouse to check out the 11 Odyssey vans currently in production.\n\nEvery Odyssey is built to order, with the ability to make select custom changes such as color schemes and exterior modifications. All builds are RV certified, Mercedes-Benz certified, and JD Power listed. Financing options are also available.\n\nMention Code “Ravizza” For A Free Ooni Pizza Oven! (when you sign a build)\n\nIf you’re interested in commissioning an Odyssey build, reach out through the links below to schedule a call.\n\nIf you’re interested in the original Odyssey, reach out directly.\n\n⸻\n\nLinks & Contact:\n\n📸 Instagram: @lucasravizza https://www.instagram.com/lucasravizza?igsh=NTc4MTIwNjQ2YQ%3D%3D&utm_source=qr\n\n📧 Email: ravizzaluxuryvans@gmail.com\n\n🌐 Website: www.ravizzaluxuryvans.com https://www.ravizzaluxuryvans.com\n\n🎥 Odyssey Lite Tour: https://youtu.be/L_maps8iHQE?si=nkGkapBZ9Mp7drFx\n\nVanspeed Capsule: LUCAS10 for 10% off https://thevanmart.com/products/vanspeed-capsules?variant=45336497553722&country=US¤cy=USD&utm_medium=product_sync&utm_source=google&utm_content=sag_organic&utm_campaign=sag_organic&gad_source=1&gad_campaignid=22296682680&gbraid=0AAAAA-cgionlmq16cWGtcah3bRM4ht-Oo&gclid=CjwKCAiA4KfLBhB0EiwAUY7GAcHK-f0W0RAT_YRXjLiMlimiQ_bwNue91uBXwQi0jqWsdOS5FVJn0BoCtOAQAvD_BwE", "Quick Luxury Van Tour and A Look At Production", "2970a908-c7f3-4064-9873-fe46bda341a3", 10, [], 819, false, "E1D0psY49hk", "https://www.youtube.com/watch?v=E1D0psY49hk", 130, "/downloads/Vanlife/2026-01-16 Quick Luxury Van Tour and A Look At Production/Quick Luxury Van Tour and A Look At Production [E1D0psY49hk].mp4", false, false, false, 1, ~U[2026-01-16 17:26:43Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Today, we take a quick tour of the original Odyssey and then head into our partner warehouse to check out the 11 Odyssey vans currently in production.\n\nEvery Odyssey is built to order, with the ability to make select custom changes such as color schemes and exterior modifications. All builds are RV certified, Mercedes-Benz certified, and JD Power listed. Financing options are also available.\n\nMention Code “Ravizza” For A Free Ooni Pizza Oven! (when you sign a build)\n\nIf you’re interested in commissioning an Odyssey build, reach out through the links below to schedule a call.\n\nIf you’re interested in the original Odyssey, reach out directly.\n\n⸻\n\nLinks & Contact:\n\n📸 Instagram: @lucasravizza https://www.instagram.com/lucasravizza?igsh=NTc4MTIwNjQ2YQ%3D%3D&utm_source=qr\n\n📧 Email: ravizzaluxuryvans@gmail.com\n\n🌐 Website: www.ravizzaluxuryvans.com https://www.ravizzaluxuryvans.com\n\n🎥 Odyssey Lite Tour: https://youtu.be/L_maps8iHQE?si=nkGkapBZ9Mp7drFx\n\nVanspeed Capsule: LUCAS10 for 10% off https://thevanmart.com/products/vanspeed-capsules?variant=45336497553722&country=US¤cy=USD&utm_medium=product_sync&utm_source=google&utm_content=sag_organic&utm_campaign=sag_organic&gad_source=1&gad_campaignid=22296682680&gbraid=0AAAAA-cgionlmq16cWGtcah3bRM4ht-Oo&gclid=CjwKCAiA4KfLBhB0EiwAUY7GAcHK-f0W0RAT_YRXjLiMlimiQ_bwNue91uBXwQi0jqWsdOS5FVJn0BoCtOAQAvD_BwE", "Quick Luxury Van Tour and A Look At Production", 10, 819, false, "E1D0psY49hk", "https://www.youtube.com/watch?v=E1D0psY49hk", "/downloads/Vanlife/2026-01-16 Quick Luxury Van Tour and A Look At Production/Quick Luxury Van Tour and A Look At Production [E1D0psY49hk].mp4", false, ~U[2026-01-16 17:26:43Z]] 11:05:34.335 [debug] QUERY OK source="sources" db=0.2ms idle=23.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.336 [debug] QUERY OK source="media_items" db=0.3ms idle=8.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-24 18:13:38Z], 10] 11:05:34.336 [debug] QUERY OK source="media_items" db=0.3ms idle=8.3ms INSERT INTO "media_items" AS m0 ("title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Odyssey Lite | Best 144” Campervan Layout", "a94c1275-dc77-4309-8a35-f4350b653d34", 10, [], 22, false, "xViUK_KBPgA", "https://www.youtube.com/watch?v=xViUK_KBPgA", 131, "/downloads/Vanlife/2026-04-24 Odyssey Lite | Best 144” Campervan Layout/Odyssey Lite | Best 144” Campervan Layout [xViUK_KBPgA].mp4", false, false, true, 1, ~U[2026-04-24 18:13:38Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "", "Odyssey Lite | Best 144” Campervan Layout", 10, 22, false, "xViUK_KBPgA", "https://www.youtube.com/watch?v=xViUK_KBPgA", "/downloads/Vanlife/2026-04-24 Odyssey Lite | Best 144” Campervan Layout/Odyssey Lite | Best 144” Campervan Layout [xViUK_KBPgA].mp4", true, ~U[2026-04-24 18:13:38Z]] 11:05:34.337 [debug] QUERY OK source="sources" db=0.2ms idle=8.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [10] 11:05:34.337 [debug] QUERY OK source="media_items" db=0.3ms 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[2025-08-02 17:08:58Z], 10] 11:05:34.339 [debug] QUERY OK source="media_items" db=0.9ms idle=2.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Video of how we build an indoor shower in a van.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "How We Build a Shower Inside a Van. Pro builder shares tips.", "7eb32216-7837-4d0d-a482-78e0f29f8630", 10, [], 1880, false, "bObOPi8ktm0", "https://www.youtube.com/watch?v=bObOPi8ktm0", 132, "/downloads/Vanlife/2025-08-02 How We Build a Shower Inside a Van. Pro builder shares tips#/How We Build a Shower Inside a Van. Pro builder shares tips. [bObOPi8ktm0].mkv", false, false, false, 1, ~U[2025-08-02 17:08:58Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "Video of how we build an indoor shower in a van.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "How We Build a Shower Inside a Van. Pro builder shares tips.", 10, 1880, false, "bObOPi8ktm0", "https://www.youtube.com/watch?v=bObOPi8ktm0", "/downloads/Vanlife/2025-08-02 How We Build a Shower Inside a Van. Pro builder shares tips#/How We Build a Shower Inside a Van. Pro builder shares tips. [bObOPi8ktm0].mkv", false, ~U[2025-08-02 17:08:58Z]] 11:05:34.339 [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" = ?) [10] 11:05:34.339 [debug] QUERY OK source="media_items" db=0.3ms 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[2024-02-05 01:54:07Z], 10] 11:05:34.341 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The van build sequence we use to get the best results without wasted time and costly mistakes.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive Life freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nDisclosures: Some links in the description are affiliate links. As an Amazon Associate we earn a small commission from qualifying purchases.\n\n➳ AUDIO/VIDEO GEAR\n• Main Camera- Canon R6 Mark ii: https://amzn.to/3zTPW3b\n• Main Lens- Canon RF 14-35mm f4: https://amzn.to/3zBErNG\n• Microphone- Rode Wireless Pro: https://amzn.to/3FxYmQr\n• Action Camera- DJI Osmo Action 4: https://amzn.to/409Focq\n• Drone- DJI Mini 4 Pro: https://amzn.to/3QarQZu\n\n#vanlife #vanlayout #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Avoid Mistakes: Best Van Build Sequence", "245c11a1-d932-4b6a-a84e-8749d5a1c752", 10, [], 1183, false, "A_z0wzCWJQ0", "https://www.youtube.com/watch?v=A_z0wzCWJQ0", 133, "/downloads/Vanlife/2024-02-05 Avoid Mistakes: Best Van Build Sequence/Avoid Mistakes: Best Van Build Sequence [A_z0wzCWJQ0].mkv", false, false, false, 1, ~U[2024-02-05 01:54:07Z], ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], "The van build sequence we use to get the best results without wasted time and costly mistakes.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nWatch this video next: https://youtu.be/A_z0wzCWJQ0?si=GNC0lh1FJWbCmOGz\n\n➳ NEED HELP WITH YOUR DIY VAN BUILD? BOOK A CONSULT CALL HERE: https://www.thrivecraftedvans.com/consultation\n\n➳ FREEZE DRIED FOOD FOR EMERGENCIES OR DAILY USE DELIVERED TO YOUR DOOR EACH MONTH:\nhttps://www.shopthrivefood.com/ \n*Choose \"Delivery\" at checkout to save an extra 15% and get free shipping on orders over $99.\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\n\n➳ WHO WE ARE\nWe're Lisa & Jeff Warnick and we've been repping Thrive Life freeze-dried foods for over 10 years. It's been a dream of ours to have a van to travel the country, supporting our team and sharing the Thrive love. After we built our first van, we realized how much we love the creative process of designing and building vans...so now we're building and selling our own custom vans. We also do conversions on client-owned vans. \n\nDisclosures: Some links in the description are affiliate links. As an Amazon Associate we earn a small commission from qualifying purchases.\n\n➳ AUDIO/VIDEO GEAR\n• Main Camera- Canon R6 Mark ii: https://amzn.to/3zTPW3b\n• Main Lens- Canon RF 14-35mm f4: https://amzn.to/3zBErNG\n• Microphone- Rode Wireless Pro: https://amzn.to/3FxYmQr\n• Action Camera- DJI Osmo Action 4: https://amzn.to/409Focq\n• Drone- DJI Mini 4 Pro: https://amzn.to/3QarQZu\n\n#vanlife #vanlayout #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Avoid Mistakes: Best Van Build Sequence", 10, 1183, false, "A_z0wzCWJQ0", "https://www.youtube.com/watch?v=A_z0wzCWJQ0", "/downloads/Vanlife/2024-02-05 Avoid Mistakes: Best Van Build Sequence/Avoid Mistakes: Best Van Build Sequence [A_z0wzCWJQ0].mkv", false, ~U[2024-02-05 01:54:07Z]] 11:05:34.341 [debug] QUERY OK source="sources" db=0.1ms idle=3.8ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z], 10] 11:05:34.342 [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 ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [10] 11:05:34.343 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [10] 11:05:34.344 [debug] QUERY OK source="media_items" db=0.1ms idle=2.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [10] 11:05:34.345 [debug] QUERY OK source="tasks" db=0.1ms idle=1.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [14817, 10, ~U[2026-07-11 15:05:34Z], ~U[2026-07-11 15:05:34Z]] 11:05:34.345 [info] {"args":{"id":10},"id":14785,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":734987926,"event":"job:stop","queue_time":253055,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 11:06:00.210 [info] {"source":"oban","duration":145,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:06:00.492 [info] {"source":"oban","duration":1270,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:06:20.042 [info] GET / 11:06:20.042 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 11:06:20.042 [debug] QUERY OK source="settings" db=0.1ms idle=818.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:06:20.042 [debug] QUERY OK source="media_profiles" db=0.0ms idle=488.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 11:06:20.042 [debug] QUERY OK source="sources" db=0.0ms idle=488.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 11:06:20.051 [debug] QUERY OK source="media_items" db=8.4ms idle=488.4ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:06:20.052 [debug] QUERY OK source="media_items" db=0.9ms idle=497.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:06:20.052 [debug] QUERY OK source="settings" db=0.0ms idle=10.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:06:20.052 [debug] QUERY OK source="settings" db=0.1ms idle=10.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:06:20.053 [debug] QUERY OK source="settings" db=0.0ms idle=10.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:06:20.053 [debug] QUERY OK source="tasks" db=0.1ms 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"] 11:06:20.054 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:06:20.055 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 11:06:20.055 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 11:06:20.066 [debug] QUERY OK source="media_items" db=9.9ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:06:20.067 [debug] QUERY OK source="media_items" db=0.5ms idle=13.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 11:06:20.068 [debug] QUERY OK source="sources" db=0.1ms idle=13.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 11:06:20.069 [info] Sent 200 in 27ms 11:06:23.703 [info] GET / 11:06:23.703 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 11:06:23.704 [debug] QUERY OK source="settings" db=0.1ms idle=475.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:06:23.704 [debug] QUERY OK source="media_profiles" db=0.0ms idle=149.8ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 11:06:23.704 [debug] QUERY OK source="sources" db=0.0ms idle=149.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 11:06:23.713 [debug] QUERY OK source="media_items" db=8.4ms idle=150.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:06:23.714 [debug] QUERY OK source="media_items" db=0.9ms idle=158.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:06:23.714 [debug] QUERY OK source="settings" db=0.0ms idle=10.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:06:23.714 [debug] QUERY OK source="settings" db=0.1ms idle=10.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:06:23.714 [debug] QUERY OK source="settings" db=0.0ms idle=10.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:06:23.715 [debug] QUERY OK source="tasks" db=0.1ms 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"] 11:06:23.716 [debug] QUERY OK source="media_items" db=0.5ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:06:23.716 [debug] QUERY OK source="media_items" db=0.2ms idle=1.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 11:06:23.717 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 11:06:23.728 [debug] QUERY OK source="media_items" db=9.9ms 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 (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:06:23.728 [debug] QUERY OK source="media_items" db=0.6ms idle=12.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] 11:06:23.729 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 11:06:23.730 [info] Sent 200 in 26ms 11:06:27.361 [info] GET / 11:06:27.361 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 11:06:27.361 [debug] QUERY OK source="settings" db=0.1ms idle=1807.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:06:27.361 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1807.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 11:06:27.362 [debug] QUERY OK source="sources" db=0.0ms idle=1807.5ms SELECT count(s0."id") FROM "sources" AS s0 [] 11:06:27.365 [debug] QUERY OK source="media_items" db=2.7ms idle=1131.2ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:06:27.365 [debug] QUERY OK source="media_items" db=0.7ms idle=133.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:06:27.366 [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 [] 11:06:27.366 [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 [] 11:06:27.366 [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 [] 11:06:27.367 [debug] QUERY OK source="tasks" db=0.1ms idle=2.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 11:06:27.368 [debug] QUERY OK source="media_items" db=0.7ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:06:27.368 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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] 11:06:27.368 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 11:06:27.375 [debug] QUERY OK source="media_items" db=5.0ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:06:27.376 [debug] QUERY OK source="media_items" db=0.6ms idle=8.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] 11:06:27.376 [debug] QUERY OK source="sources" db=0.1ms idle=8.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 11:06:27.377 [info] Sent 200 in 16ms 11:06:30.494 [info] {"source":"oban","duration":611,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:07:00.211 [info] {"source":"oban","duration":282,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:07:00.495 [info] {"source":"oban","duration":1271,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:07:30.497 [info] {"source":"oban","duration":639,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:08:00.212 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:08:00.497 [info] {"source":"oban","duration":575,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:08:30.499 [info] {"source":"oban","duration":580,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:08:47.689 [info] GET / 11:08:47.690 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 11:08:47.690 [debug] QUERY OK source="settings" db=0.1ms idle=309.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:08:47.690 [debug] QUERY OK source="media_profiles" db=0.0ms idle=135.8ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 11:08:47.690 [debug] QUERY OK source="sources" db=0.0ms idle=136.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 11:08:47.701 [debug] QUERY OK source="media_items" db=10.7ms idle=136.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:08:47.702 [debug] QUERY OK source="media_items" db=0.9ms idle=147.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:08:47.702 [debug] QUERY OK source="settings" db=0.1ms idle=12.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:08:47.703 [debug] QUERY OK source="settings" db=0.0ms idle=12.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:08:47.703 [debug] QUERY OK source="settings" db=0.0ms idle=12.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:08:47.703 [debug] QUERY OK source="tasks" db=0.1ms 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"] 11:08:47.704 [debug] QUERY OK source="media_items" db=0.5ms 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 (NOT (m0."media_filepath" IS NULL)) [] 11:08:47.705 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 11:08:47.705 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 11:08:47.711 [debug] QUERY OK source="media_items" db=5.0ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:08:47.712 [debug] QUERY OK source="media_items" db=0.5ms idle=8.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 11:08:47.713 [debug] QUERY OK source="sources" db=0.1ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 11:08:47.714 [info] Sent 200 in 24ms 11:08:48.881 [info] GET / 11:08:48.881 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 11:08:48.882 [debug] QUERY OK source="settings" db=0.1ms idle=1176.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:08:48.882 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1170.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 11:08:48.882 [debug] QUERY OK source="sources" db=0.0ms idle=1169.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 11:08:48.885 [debug] QUERY OK source="media_items" db=3.1ms idle=1169.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:08:48.886 [debug] QUERY OK source="media_items" db=0.8ms idle=503.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:08:48.886 [debug] QUERY OK source="settings" db=0.0ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:08:48.887 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:08:48.887 [debug] QUERY OK source="settings" db=0.0ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:08:48.887 [debug] QUERY OK source="tasks" db=0.1ms idle=2.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 11:08:48.889 [debug] QUERY OK source="media_items" db=0.8ms idle=1.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:08:48.889 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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] 11:08:48.889 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 11:08:48.895 [debug] QUERY OK source="media_items" db=4.8ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:08:48.896 [debug] QUERY OK source="media_items" db=0.5ms idle=8.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] 11:08:48.897 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 11:08:48.898 [info] Sent 200 in 16ms 11:08:51.378 [info] GET / 11:08:51.378 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 11:08:51.379 [debug] QUERY OK source="settings" db=0.1ms idle=994.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:08:51.379 [debug] QUERY OK source="media_profiles" db=0.0ms idle=824.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 11:08:51.379 [debug] QUERY OK source="sources" db=0.0ms idle=824.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 11:08:51.382 [debug] QUERY OK source="media_items" db=3.1ms idle=825.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:08:51.383 [debug] QUERY OK source="media_items" db=1.1ms idle=828.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:08:51.384 [debug] QUERY OK source="settings" db=0.0ms 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 [] 11:08:51.384 [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 [] 11:08:51.384 [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 [] 11:08:51.385 [debug] QUERY OK source="tasks" db=0.1ms idle=1.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"] 11:08:51.387 [debug] QUERY OK source="media_items" db=1.3ms idle=1.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:08:51.387 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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] 11:08:51.387 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 11:08:51.394 [debug] QUERY OK source="media_items" db=5.1ms idle=4.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:08:51.395 [debug] QUERY OK source="media_items" db=0.6ms 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] 11:08:51.395 [debug] QUERY OK source="sources" db=0.1ms idle=8.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 11:08:51.397 [info] Sent 200 in 18ms 11:09:00.213 [info] {"source":"oban","duration":129,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:09:00.500 [info] {"source":"oban","duration":620,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:09:30.500 [info] {"source":"oban","duration":485,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:09:54.140 [info] GET / 11:09:54.140 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 11:09:54.140 [debug] QUERY OK source="settings" db=0.1ms idle=1585.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:09:54.140 [debug] QUERY OK source="media_profiles" db=0.0ms idle=690.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 11:09:54.140 [debug] QUERY OK source="sources" db=0.0ms idle=586.4ms SELECT count(s0."id") FROM "sources" AS s0 [] 11:09:54.143 [debug] QUERY OK source="media_items" db=2.7ms idle=586.5ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:09:54.144 [debug] QUERY OK source="media_items" db=0.7ms idle=589.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:09:54.144 [debug] QUERY OK source="settings" db=0.0ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:09:54.144 [debug] QUERY OK source="settings" db=0.0ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:09:54.145 [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 [] 11:09:54.145 [debug] QUERY OK source="tasks" db=0.1ms idle=1.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"] 11:09:54.147 [debug] QUERY OK source="media_items" db=0.8ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:09:54.147 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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] 11:09:54.147 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 11:09:54.154 [debug] QUERY OK source="media_items" db=5.5ms idle=4.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:09:54.155 [debug] QUERY OK source="media_items" db=0.5ms 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] 11:09:54.156 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 11:09:54.157 [info] Sent 200 in 16ms 11:10:00.214 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:10:00.502 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:10:30.503 [info] {"source":"oban","duration":586,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:11:00.215 [info] {"source":"oban","duration":219,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:11:00.504 [info] {"source":"oban","duration":611,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:11:30.506 [info] {"source":"oban","duration":1426,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:11:39.939 [info] GET / 11:11:39.939 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 11:11:39.939 [debug] QUERY OK source="settings" db=0.1ms idle=384.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:11:39.939 [debug] QUERY OK source="media_profiles" db=0.0ms idle=385.0ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 11:11:39.939 [debug] QUERY OK source="sources" db=0.0ms idle=385.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 11:11:39.942 [debug] QUERY OK source="media_items" db=2.8ms idle=385.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:11:39.943 [debug] QUERY OK source="media_items" db=0.8ms idle=381.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:11:39.944 [debug] QUERY OK source="settings" db=0.0ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:11:39.944 [debug] QUERY OK source="settings" db=0.0ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:11:39.944 [debug] QUERY OK source="settings" db=0.0ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:11:39.945 [debug] QUERY OK source="tasks" db=0.1ms 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"] 11:11:39.946 [debug] QUERY OK source="media_items" db=0.9ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:11:39.947 [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] 11:11:39.947 [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 (?,?,?,?)) [1, 5, 16, 41] 11:11:39.954 [debug] QUERY OK source="media_items" db=5.2ms idle=4.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:11:39.954 [debug] QUERY OK source="media_items" db=0.5ms idle=8.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 11:11:39.955 [debug] QUERY OK source="sources" db=0.1ms idle=8.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 11:11:39.956 [info] Sent 200 in 17ms 11:12:00.216 [info] {"source":"oban","duration":135,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:12:00.508 [info] {"source":"oban","duration":536,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:12:30.509 [info] {"source":"oban","duration":825,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:13:00.217 [info] {"source":"oban","duration":149,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:13:00.511 [info] {"source":"oban","duration":655,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:13:15.813 [info] GET / 11:13:15.813 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 11:13:15.814 [debug] QUERY OK source="settings" db=0.1ms idle=259.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:13:15.814 [debug] QUERY OK source="media_profiles" db=0.0ms idle=259.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 11:13:15.814 [debug] QUERY OK source="sources" db=0.0ms idle=259.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 11:13:15.817 [debug] QUERY OK source="media_items" db=2.6ms idle=260.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:13:15.818 [debug] QUERY OK source="media_items" db=0.7ms idle=152.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:13:15.818 [debug] QUERY OK source="settings" db=0.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:13:15.818 [debug] QUERY OK source="settings" db=0.0ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:13:15.818 [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 [] 11:13:15.819 [debug] QUERY OK source="tasks" db=0.1ms idle=1.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"] 11:13:15.820 [debug] QUERY OK source="media_items" db=0.8ms idle=1.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 11:13:15.820 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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] 11:13:15.821 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 11:13:15.827 [debug] QUERY OK source="media_items" db=4.6ms 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 (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:13:15.827 [debug] QUERY OK source="media_items" db=0.4ms idle=7.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 11:13:15.828 [debug] QUERY OK source="sources" db=0.1ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 11:13:15.828 [info] Sent 200 in 15ms 11:13:30.512 [info] {"source":"oban","duration":629,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:14:00.218 [info] {"source":"oban","duration":213,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:14:00.513 [info] {"source":"oban","duration":593,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:14:30.514 [info] {"source":"oban","duration":775,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:15:00.219 [info] {"source":"oban","duration":249,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:15:00.515 [info] {"source":"oban","duration":858,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:15:30.517 [info] {"source":"oban","duration":812,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:16:00.220 [info] {"source":"oban","duration":144,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:16:00.518 [info] {"source":"oban","duration":762,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:16:30.519 [info] {"source":"oban","duration":603,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:17:00.221 [info] {"source":"oban","duration":141,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:17:00.520 [info] {"source":"oban","duration":896,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:17:30.522 [info] {"source":"oban","duration":643,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:18:00.222 [info] {"source":"oban","duration":204,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:18:00.523 [info] {"source":"oban","duration":640,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:18:30.524 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:19:00.223 [info] {"source":"oban","duration":131,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:19:00.525 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:19:30.526 [info] {"source":"oban","duration":612,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:20:00.224 [info] {"source":"oban","duration":218,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:20:00.527 [info] {"source":"oban","duration":1028,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:20:30.529 [info] {"source":"oban","duration":933,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:21:00.225 [info] {"source":"oban","duration":295,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:21:00.531 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:21:30.532 [info] {"source":"oban","duration":638,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:22:00.226 [info] {"source":"oban","duration":245,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:22:00.533 [info] {"source":"oban","duration":573,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:22:30.534 [info] {"source":"oban","duration":581,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:22:41.111 [info] GET /sitemap.xml 11:22:41.111 [debug] QUERY OK source="settings" db=0.1ms idle=1556.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:22:41.111 [debug] QUERY OK source="settings" db=0.0ms idle=1557.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:22:41.111 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 11:22:41.111 [error] #PID<0.189718.0> running PinchflatWeb.Endpoint (connection #PID<0.189717.0>, stream id 1) terminated Server: pinchflat.econ.llc: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.189717.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 43462}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189718.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFFhBtFzneF8DcAQJ6C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189717.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 43462}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189717.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 43462}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189718.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFFhBtFzneF8DcAQJ6C"} ], scheme: :http, scr (truncated) 11:23:00.227 [info] {"source":"oban","duration":145,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:23:00.535 [info] {"source":"oban","duration":547,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:23:30.536 [info] {"source":"oban","duration":641,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:24:00.228 [info] {"source":"oban","duration":288,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:24:00.537 [info] {"source":"oban","duration":837,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:24:30.538 [info] {"source":"oban","duration":623,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:25:00.229 [info] {"source":"oban","duration":247,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:25:00.539 [info] {"source":"oban","duration":590,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:25:30.540 [info] {"source":"oban","duration":568,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:26:00.230 [info] {"source":"oban","duration":319,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:26:00.541 [info] {"source":"oban","duration":467,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:26:30.543 [info] {"source":"oban","duration":846,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:27:00.231 [info] {"source":"oban","duration":244,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:27:00.544 [info] {"source":"oban","duration":877,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:27:30.546 [info] {"source":"oban","duration":598,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:28:00.232 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:28:00.547 [info] {"source":"oban","duration":903,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:28:30.549 [info] {"source":"oban","duration":814,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:29:00.233 [info] {"source":"oban","duration":170,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:29:00.549 [info] {"source":"oban","duration":553,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:29:30.551 [info] {"source":"oban","duration":576,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:30:00.234 [info] {"source":"oban","duration":187,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:30:00.552 [info] {"source":"oban","duration":600,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:30:30.553 [info] {"source":"oban","duration":994,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:31:00.235 [info] {"source":"oban","duration":140,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:31:00.555 [info] {"source":"oban","duration":656,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:31:30.555 [info] {"source":"oban","duration":551,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:32:00.236 [info] {"source":"oban","duration":149,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:32:00.557 [info] {"source":"oban","duration":611,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:32:30.558 [info] {"source":"oban","duration":922,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:33:00.237 [info] {"source":"oban","duration":145,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:33:00.560 [info] {"source":"oban","duration":561,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:33:30.561 [info] {"source":"oban","duration":622,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:34:00.238 [info] {"source":"oban","duration":188,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:34:00.562 [info] {"source":"oban","duration":979,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:34:30.564 [info] {"source":"oban","duration":798,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:35:00.239 [info] {"source":"oban","duration":165,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:35:00.565 [info] {"source":"oban","duration":546,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:35:29.125 [info] GET /sitemap.xml 11:35:29.125 [debug] QUERY OK source="settings" db=0.1ms idle=904.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:35:29.125 [debug] QUERY OK source="settings" db=0.0ms idle=571.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:35:29.125 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 11:35:29.126 [error] #PID<0.189789.0> running PinchflatWeb.Endpoint (connection #PID<0.189788.0>, stream id 1) terminated Server: pinchflat.econ.llc: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.189788.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 54056}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189789.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFGNux6agN-ANsAVfmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189788.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 54056}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189788.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 54056}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189789.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_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFGNux6agN-ANsAVfmB"} ], scheme: :http, scr (truncated) 11:35:30.566 [info] {"source":"oban","duration":596,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:36:00.240 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:36:00.568 [info] {"source":"oban","duration":951,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:36:30.570 [info] {"source":"oban","duration":707,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:37:00.241 [info] {"source":"oban","duration":148,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:37:00.571 [info] {"source":"oban","duration":1114,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:37:30.573 [info] {"source":"oban","duration":545,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:38:00.242 [info] {"source":"oban","duration":154,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:38:00.573 [info] {"source":"oban","duration":545,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:38:30.575 [info] {"source":"oban","duration":587,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:38:45.822 [info] GET /sources/42 11:38:45.822 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "42"} Pipelines: [:browser] 11:38:45.822 [debug] QUERY OK source="sources" db=0.1ms idle=1267.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 11:38:45.823 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1268.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:38:45.823 [debug] QUERY OK source="tasks" db=0.1ms idle=1268.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 (?,?,?,?)) [42, "executing", "available", "scheduled", "retryable"] 11:38:45.823 [debug] QUERY OK source="settings" db=0.0ms idle=1268.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38:45.823 [debug] QUERY OK source="settings" db=0.0ms idle=367.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38:45.823 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:38:45.824 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 11:38:45.825 [debug] QUERY OK source="media_items" db=0.5ms 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")))) [42] 11:38:45.826 [debug] QUERY OK source="media_items" db=0.6ms idle=2.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [42, 10, 0] 11:38:45.827 [debug] QUERY OK source="sources" db=0.0ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 11:38:45.827 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [42] 11:38:45.827 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [42, 10, 0] 11:38:45.827 [debug] QUERY OK source="sources" db=0.0ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 11:38:45.828 [debug] QUERY OK source="media_items" db=0.3ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [42] 11:38:45.829 [debug] QUERY OK source="media_items" db=0.5ms idle=1.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 ? [42, 10, 0] 11:38:45.829 [info] Sent 200 in 7ms 11:38:46.209 [info] GET /sources/41 11:38:46.209 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "41"} Pipelines: [:browser] 11:38:46.209 [debug] QUERY OK source="sources" db=0.1ms idle=382.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 11:38:46.210 [debug] QUERY OK source="media_profiles" db=0.1ms idle=382.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] 11:38:46.210 [debug] QUERY OK source="tasks" db=0.3ms idle=382.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 (?,?,?,?)) [41, "executing", "available", "scheduled", "retryable"] 11:38:46.210 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=382.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" = ?) [14806] 11:38:46.211 [debug] QUERY OK source="settings" db=0.0ms idle=381.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:38:46.211 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:38:46.211 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:38:46.212 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 11:38:46.212 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [41] 11:38:46.213 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [41, 10, 0] 11:38:46.213 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 11:38:46.213 [debug] QUERY OK source="media_items" db=0.0ms idle=2.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [41] 11:38:46.214 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [41, 10, 0] 11:38:46.214 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 11:38:46.215 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [41] 11:38:46.215 [debug] QUERY OK source="media_items" db=0.3ms idle=1.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 ? [41, 10, 0] 11:38:46.216 [info] Sent 200 in 6ms 11:39:00.243 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:39:00.576 [info] {"source":"oban","duration":589,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:39:02.181 [info] GET /sources/41/media/129560 11:39:02.181 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "129560", "source_id" => "41"} Pipelines: [:browser] 11:39:02.181 [debug] QUERY OK source="media_items" db=0.1ms idle=1605.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" = ?) [129560] 11:39:02.182 [debug] QUERY OK source="tasks" db=0.1ms idle=703.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" [129560] 11:39:02.182 [debug] QUERY OK source="sources" db=0.2ms idle=627.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 11:39:02.182 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=627.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" = ?) [14617] 11:39:02.182 [debug] QUERY OK source="settings" db=0.0ms idle=627.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39:02.182 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:39:02.183 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:39:02.183 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:39:02.195 [info] Sent 200 in 14ms 11:39:02.608 [info] GET /sources/18/media/16964 11:39:02.608 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16964", "source_id" => "18"} Pipelines: [:browser] 11:39:02.609 [debug] QUERY OK source="media_items" db=0.2ms idle=426.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" = ?) [16964] 11:39:02.609 [debug] QUERY OK source="tasks" db=0.0ms idle=426.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" [16964] 11:39:02.609 [debug] QUERY OK source="sources" db=0.1ms idle=426.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 11:39:02.610 [debug] QUERY OK source="settings" db=0.0ms idle=426.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39:02.610 [debug] QUERY OK source="settings" db=0.0ms idle=131.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39:02.610 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:39:02.611 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:39:02.612 [info] Sent 200 in 3ms 11:39:30.577 [info] {"source":"oban","duration":604,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:39:41.139 [info] GET /sources/16/media/18817 11:39:41.139 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18817", "source_id" => "16"} Pipelines: [:browser] 11:39:41.140 [debug] QUERY OK source="media_items" db=0.1ms idle=611.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" = ?) [18817] 11:39:41.140 [debug] QUERY OK source="tasks" db=0.1ms idle=585.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" [18817] 11:39:41.140 [debug] QUERY OK source="sources" db=0.1ms idle=585.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 11:39:41.141 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=586.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 (?,?,?,?,?)) [13605, 14015, 14409, 14441, 14474] 11:39:41.141 [debug] QUERY OK source="settings" db=0.0ms idle=587.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39:41.141 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:39:41.142 [debug] QUERY OK source="settings" db=0.1ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:39:41.142 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:39:41.143 [info] Sent 200 in 4ms 11:39:41.468 [info] GET /sources/16/media/18885 11:39:41.468 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18885", "source_id" => "16"} Pipelines: [:browser] 11:39:41.469 [debug] QUERY OK source="media_items" db=0.1ms idle=327.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" = ?) [18885] 11:39:41.469 [debug] QUERY OK source="sources" db=0.1ms idle=327.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 11:39:41.469 [debug] QUERY OK source="tasks" db=0.2ms idle=327.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" [18885] 11:39:41.470 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=327.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 (?,?,?,?,?)) [13606, 14047, 14442, 14475, 14506] 11:39:41.470 [debug] QUERY OK source="settings" db=0.0ms idle=327.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39:41.470 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:39:41.471 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:39:41.471 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:39:41.472 [info] Sent 200 in 4ms 11:39:50.999 [info] GET /sources/41/media/129711 11:39:50.999 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "129711", "source_id" => "41"} Pipelines: [:browser] 11:39:51.000 [debug] QUERY OK source="media_items" db=0.1ms idle=459.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" = ?) [129711] 11:39:51.000 [debug] QUERY OK source="tasks" db=0.1ms idle=445.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" [129711] 11:39:51.000 [debug] QUERY OK source="sources" db=0.3ms idle=446.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 11:39:51.001 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=446.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" = ?) [14618] 11:39:51.001 [debug] QUERY OK source="settings" db=0.1ms idle=446.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39:51.001 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:39:51.002 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:39:51.002 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:39:51.008 [info] Sent 200 in 8ms 11:39:57.352 [info] GET /sources/42/media/16864 11:39:57.352 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16864", "source_id" => "42"} Pipelines: [:browser] 11:39:57.353 [debug] QUERY OK source="media_items" db=0.1ms idle=805.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" = ?) [16864] 11:39:57.353 [debug] QUERY OK source="tasks" db=0.0ms idle=798.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" [16864] 11:39:57.353 [debug] QUERY OK source="sources" db=0.2ms idle=798.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 11:39:57.354 [debug] QUERY OK source="settings" db=0.1ms idle=799.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39:57.354 [debug] QUERY OK source="settings" db=0.1ms idle=799.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:39:57.354 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:39:57.355 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:39:57.356 [info] Sent 200 in 3ms 11:40:00.244 [info] {"source":"oban","duration":145,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:40:00.578 [info] {"source":"oban","duration":549,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:40:15.722 [info] GET /sources/5/media/106329 11:40:15.722 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "106329", "source_id" => "5"} Pipelines: [:browser] 11:40:15.722 [debug] QUERY OK source="media_items" db=0.1ms idle=1168.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" = ?) [106329] 11:40:15.723 [debug] QUERY OK source="tasks" db=0.1ms idle=1168.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" [106329] 11:40:15.723 [debug] QUERY OK source="sources" db=0.2ms idle=1157.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 11:40:15.723 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=168.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" = ?) [14260] 11:40:15.723 [debug] QUERY OK source="settings" db=0.1ms idle=156.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:40:15.723 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:40:15.724 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:40:15.724 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:40:15.732 [info] Sent 200 in 10ms 11:40:21.481 [info] GET /sources/16/media/116008 11:40:21.481 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "116008", "source_id" => "16"} Pipelines: [:browser] 11:40:21.481 [debug] QUERY OK source="media_items" db=0.1ms idle=1926.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" = ?) [116008] 11:40:21.482 [debug] QUERY OK source="tasks" db=0.1ms idle=1927.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" [116008] 11:40:21.482 [debug] QUERY OK source="sources" db=0.1ms idle=1927.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 11:40:21.482 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1908.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" = ?) [14407] 11:40:21.482 [debug] QUERY OK source="settings" db=0.0ms idle=907.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:40:21.483 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:40:21.483 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:40:21.483 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:40:21.490 [info] Sent 200 in 9ms 11:40:30.579 [info] {"source":"oban","duration":590,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:40:41.096 [info] GET /sources/42/media/16863 11:40:41.096 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16863", "source_id" => "42"} Pipelines: [:browser] 11:40:41.096 [debug] QUERY OK source="media_items" db=0.1ms idle=542.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" = ?) [16863] 11:40:41.097 [debug] QUERY OK source="tasks" db=0.0ms idle=542.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" [16863] 11:40:41.097 [debug] QUERY OK source="sources" db=0.1ms idle=542.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 11:40:41.097 [debug] QUERY OK source="settings" db=0.0ms idle=542.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:40:41.097 [debug] QUERY OK source="settings" db=0.0ms idle=497.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:40:41.097 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:40:41.098 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:40:41.099 [info] Sent 200 in 3ms 11:40:47.641 [info] GET /sources/1/media/102094 11:40:47.641 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "102094", "source_id" => "1"} Pipelines: [:browser] 11:40:47.642 [debug] QUERY OK source="media_items" db=0.1ms idle=1087.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" = ?) [102094] 11:40:47.642 [debug] QUERY OK source="tasks" db=0.0ms idle=1087.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" [102094] 11:40:47.642 [debug] QUERY OK source="sources" db=0.1ms idle=1087.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:40:47.643 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1035.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" = ?) [14189] 11:40:47.643 [debug] QUERY OK source="settings" db=0.1ms idle=34.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:40:47.643 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:40:47.643 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:40:47.644 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:40:47.655 [info] Sent 200 in 13ms 11:40:55.155 [info] GET /settings 11:40:55.155 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 11:40:55.155 [debug] QUERY OK source="settings" db=0.1ms idle=1601.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:40:55.156 [debug] QUERY OK source="settings" db=0.0ms idle=1601.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:40:55.156 [debug] QUERY OK source="settings" db=0.0ms idle=1601.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:40:55.156 [debug] QUERY OK source="settings" db=0.0ms idle=1541.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:40:55.157 [info] Sent 200 in 2ms 11:41:00.245 [info] {"source":"oban","duration":179,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:41:00.580 [info] {"source":"oban","duration":588,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:41:14.847 [info] GET /sources 11:41:14.848 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 11:41:14.848 [debug] QUERY OK source="settings" db=0.1ms idle=293.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:14.848 [debug] QUERY OK source="settings" db=0.0ms idle=294.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:14.849 [debug] QUERY OK source="settings" db=0.0ms idle=294.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:14.849 [debug] QUERY OK source="settings" db=0.0ms idle=294.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:14.849 [debug] QUERY OK source="settings" db=0.0ms idle=208.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:14.856 [debug] QUERY OK source="sources" db=6.8ms idle=1.3ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 11:41:14.864 [debug] QUERY OK source="sources" db=7.3ms idle=8.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", 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] 11:41:14.866 [info] Sent 200 in 18ms 11:41:30.581 [info] {"source":"oban","duration":964,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:41:32.845 [info] GET /app_info 11:41:32.845 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 11:41:32.846 [debug] QUERY OK source="settings" db=0.1ms idle=291.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:32.846 [debug] QUERY OK source="settings" db=0.0ms idle=291.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:32.846 [debug] QUERY OK source="settings" db=0.0ms idle=292.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:32.846 [debug] QUERY OK source="settings" db=0.0ms idle=292.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:32.847 [debug] QUERY OK source="settings" db=0.0ms idle=181.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:41:32.847 [info] Sent 200 in 2ms 11:41:52.169 [info] GET /media_profiles 11:41:52.169 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 11:41:52.169 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1614.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", (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" [] 11:41:52.169 [debug] QUERY OK source="settings" db=0.1ms idle=1615.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:52.170 [debug] QUERY OK source="settings" db=0.0ms idle=1615.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:52.170 [debug] QUERY OK source="settings" db=0.0ms idle=1481.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:41:52.171 [info] Sent 200 in 2ms 11:42:00.246 [info] {"source":"oban","duration":234,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:42:00.582 [info] {"source":"oban","duration":591,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:42:14.389 [info] GET /sources/5 11:42:14.389 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "5"} Pipelines: [:browser] 11:42:14.389 [debug] QUERY OK source="sources" db=0.1ms idle=1673.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."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] 11:42:14.390 [debug] QUERY OK source="media_profiles" db=0.1ms idle=835.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] 11:42:14.390 [debug] QUERY OK source="tasks" db=0.2ms idle=835.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 (?,?,?,?)) [5, "executing", "available", "scheduled", "retryable"] 11:42:14.390 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=835.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" = ?) [14813] 11:42:14.390 [debug] QUERY OK source="settings" db=0.0ms idle=673.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:42:14.391 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:42:14.391 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:42:14.392 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 11:42:14.393 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [5] 11:42:14.393 [debug] QUERY OK source="media_items" db=0.4ms idle=2.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 11:42:14.394 [debug] QUERY OK source="sources" db=0.0ms 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" = ?) [5] 11:42:14.394 [debug] QUERY OK source="media_items" db=0.1ms idle=2.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [5] 11:42:14.394 [debug] QUERY OK source="media_items" db=0.3ms idle=2.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] 11:42:14.395 [debug] QUERY OK source="sources" db=0.0ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 11:42:14.395 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 11:42:14.396 [debug] QUERY OK source="media_items" db=0.4ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 11:42:14.397 [info] Sent 200 in 7ms 11:42:21.055 [info] GET /sources/1 11:42:21.055 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 11:42:21.055 [debug] QUERY OK source="sources" db=0.1ms idle=1500.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:42:21.056 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1501.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] 11:42:21.056 [debug] QUERY OK source="tasks" db=0.2ms idle=1501.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 (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 11:42:21.056 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=1331.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" = ?) [14786] 11:42:21.057 [debug] QUERY OK source="settings" db=0.1ms idle=329.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:42:21.057 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:42:21.057 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:42:21.058 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:42:21.058 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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")))) [1] 11:42:21.059 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 11:42:21.059 [debug] QUERY OK source="sources" db=0.0ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:42:21.059 [debug] QUERY OK source="media_items" db=0.0ms idle=2.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 11:42:21.060 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 11:42:21.060 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 11:42:21.061 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 11:42:21.061 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 11:42:21.062 [info] Sent 200 in 7ms 11:42:30.584 [info] {"source":"oban","duration":1065,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:42:40.357 [info] GET /sources/18 11:42:40.357 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "18"} Pipelines: [:browser] 11:42:40.358 [debug] QUERY OK source="sources" db=0.1ms idle=1803.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 11:42:40.358 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1803.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:42:40.358 [debug] QUERY OK source="tasks" db=0.1ms idle=1804.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 (?,?,?,?)) [18, "executing", "available", "scheduled", "retryable"] 11:42:40.358 [debug] QUERY OK source="settings" db=0.0ms idle=1606.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:42:40.359 [debug] QUERY OK source="settings" db=0.0ms idle=605.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:42:40.359 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:42:40.360 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 11:42:40.360 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [18] 11:42:40.361 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [18, 10, 0] 11:42:40.361 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 11:42:40.361 [debug] QUERY OK source="media_items" db=0.0ms idle=2.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [18] 11:42:40.362 [debug] QUERY OK source="media_items" db=0.1ms idle=1.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 ? [18, 10, 0] 11:42:40.362 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 11:42:40.363 [debug] QUERY OK source="media_items" db=0.1ms idle=1.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"))))) [18] 11:42:40.363 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [18, 10, 0] 11:42:40.363 [info] Sent 200 in 6ms 11:42:51.524 [info] GET /sources/16 11:42:51.524 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "16"} Pipelines: [:browser] 11:42:51.525 [debug] QUERY OK source="sources" db=0.1ms idle=1970.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 11:42:51.525 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1970.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 11:42:51.526 [debug] QUERY OK source="tasks" db=0.5ms idle=1971.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 (?,?,?,?)) [16, "executing", "available", "scheduled", "retryable"] 11:42:51.526 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=1761.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" = ?) [14792] 11:42:51.526 [debug] QUERY OK source="settings" db=0.1ms idle=760.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_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:42:51.526 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:42:51.527 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:42:51.528 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 11:42:51.528 [debug] QUERY OK source="media_items" db=0.2ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [16] 11:42:51.529 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [16, 10, 0] 11:42:51.529 [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" = ?) [16] 11:42:51.529 [debug] QUERY OK source="media_items" db=0.1ms idle=2.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [16] 11:42:51.530 [debug] QUERY OK source="media_items" db=0.1ms idle=1.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 ? [16, 10, 0] 11:42:51.530 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 11:42:51.531 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [16] 11:42:51.531 [debug] QUERY OK source="media_items" db=0.3ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [16, 10, 0] 11:42:51.532 [info] Sent 200 in 7ms 11:43:00.247 [info] {"source":"oban","duration":156,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:43:00.585 [info] {"source":"oban","duration":531,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:43:30.587 [info] {"source":"oban","duration":636,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:44:00.248 [info] {"source":"oban","duration":137,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:44:00.587 [info] {"source":"oban","duration":523,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:44:30.589 [info] {"source":"oban","duration":679,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:45:00.249 [info] {"source":"oban","duration":141,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:45:00.589 [info] {"source":"oban","duration":547,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:45:30.591 [info] {"source":"oban","duration":534,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:46:00.250 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:46:00.591 [info] {"source":"oban","duration":492,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:46:30.593 [info] {"source":"oban","duration":546,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:47:00.251 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:47:00.593 [info] {"source":"oban","duration":511,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:47:30.595 [info] {"source":"oban","duration":1152,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:48:00.252 [info] {"source":"oban","duration":331,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:48:00.597 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:48:30.598 [info] {"source":"oban","duration":668,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:49:00.253 [info] {"source":"oban","duration":282,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:49:00.599 [info] {"source":"oban","duration":564,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:49:30.600 [info] {"source":"oban","duration":614,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:50:00.254 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:50:00.600 [info] {"source":"oban","duration":555,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:50:30.601 [info] {"source":"oban","duration":577,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:51:00.255 [info] {"source":"oban","duration":136,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:51:00.603 [info] {"source":"oban","duration":1023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:51:23.350 [info] GET /auth 11:51:23.350 [debug] QUERY OK source="settings" db=0.1ms idle=952.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:51:23.350 [debug] QUERY OK source="settings" db=0.0ms idle=796.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 11:51:23.351 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 11:51:23.351 [error] #PID<0.189946.0> running PinchflatWeb.Endpoint (connection #PID<0.189945.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /auth ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /auth (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189945.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/auth", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 39084}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "host" => "pinchflat.econ.llc", "pragma" => "no-cache", "priority" => "u=0, i", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-gpc" => "1", "upgrade-insecure-requests" => "1", "user-agent" => "\"Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3.1 Mobile/15E148 Safari/604.\"", "via" => "2.0 Caddy", "x-forwarded-for" => "89.37.63.46", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.189946.0>, params: %{}, path_info: ["auth"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip, deflate, br, zstd"}, {"accept-language", "en-US,en;q=0.5"}, {"host", "pinchflat.econ.llc"}, {"pragma", "no-cache"}, {"priority", "u=0, i"}, {"sec-fetch-dest", "document"}, {"sec-fetch-mode", "navigate"}, {"sec-fetch-site", "cross-site"}, {"sec-gpc", "1"}, {"upgrade-insecure-requests", "1"}, {"user-agent", "\"Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3.1 Mobile/15E148 Safari/604.\""}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "89.37.63.46"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/auth", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFHFRi7CJQv5WEAQMMC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189945.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/auth", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 39084}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "host" => "pinchflat.econ.llc", "pragma" => "no-cache", "priority" => "u=0, i", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-gpc" => "1", "upgrade-insecure-requests" => "1", "user-agent" => "\"Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3.1 Mobile/15E148 Safari/604.\"", "via" => "2.0 Caddy", "x-forwarded-for" => "89.37.63.46", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /auth (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.189945.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/auth", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 39084}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip, deflate, br, zstd", "accept-language" => "en-US,en;q=0.5", "host" => "pinchflat.econ.llc", "pragma" => "no-cache", "priority" => "u=0, i", "sec-fetch-dest" => "document", "sec-fetch-mode" => "navigate", "sec-fetch-site" => "cross-site", "sec-gpc" => "1", "upgrade-insecure-requests" => "1", "user-agent" => "\"Mozilla/5.0 (iPhone; CPU iPhone OS 18_3_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3.1 Mobile/15E148 Safari/604.\"", "via" => "2.0 Caddy", "x-forwarded-for" => "89.37.63.46", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, (truncated) 11:51:30.605 [info] {"source":"oban","duration":579,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:52:00.256 [info] {"source":"oban","duration":218,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:52:00.606 [info] {"source":"oban","duration":566,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:52:30.607 [info] {"source":"oban","duration":602,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:53:00.257 [info] {"source":"oban","duration":263,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:53:00.608 [info] {"source":"oban","duration":618,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:53:30.609 [info] {"source":"oban","duration":1089,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:54:00.258 [info] {"source":"oban","duration":228,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:54:00.610 [info] {"source":"oban","duration":491,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:54:30.612 [info] {"source":"oban","duration":634,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:55:00.259 [info] {"source":"oban","duration":300,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:55:00.613 [info] {"source":"oban","duration":626,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:55:30.613 [info] {"source":"oban","duration":543,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:56:00.260 [info] {"source":"oban","duration":135,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:56:00.615 [info] {"source":"oban","duration":987,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:56:30.617 [info] {"source":"oban","duration":1243,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:57:00.261 [info] {"source":"oban","duration":317,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:57:00.619 [info] {"source":"oban","duration":601,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:57:30.620 [info] {"source":"oban","duration":608,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:58:00.262 [info] {"source":"oban","duration":208,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:58:00.621 [info] {"source":"oban","duration":688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:58:30.621 [info] {"source":"oban","duration":517,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:59:00.263 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 11:59:00.623 [info] {"source":"oban","duration":605,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 11:59:30.624 [info] {"source":"oban","duration":534,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:00:00.264 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:00:00.624 [info] {"source":"oban","duration":542,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:00:30.625 [info] {"source":"oban","duration":527,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:00:53.038 [info] GET / 12:00:53.038 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 12:00:53.039 [debug] QUERY OK source="settings" db=0.1ms idle=972.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:00:53.039 [debug] QUERY OK source="media_profiles" db=0.0ms idle=484.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 12:00:53.039 [debug] QUERY OK source="sources" db=0.0ms idle=484.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 12:00:53.042 [debug] QUERY OK source="media_items" db=2.8ms idle=484.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:00:53.043 [debug] QUERY OK source="media_items" db=0.7ms idle=487.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:00:53.043 [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 [] 12:00:53.043 [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 [] 12:00:53.043 [debug] QUERY OK source="settings" db=0.0ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:00:53.044 [debug] QUERY OK source="tasks" db=0.1ms idle=2.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:00:53.045 [debug] QUERY OK source="media_items" db=0.8ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:00:53.046 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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:00:53.046 [debug] QUERY OK source="sources" db=0.1ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 12:00:53.052 [debug] QUERY OK source="media_items" db=4.8ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:00:53.053 [debug] QUERY OK source="media_items" db=0.6ms idle=8.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:00:53.053 [debug] QUERY OK source="sources" db=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?)) [42, 18, 16] 12:00:53.054 [info] Sent 200 in 16ms 12:01:00.265 [info] {"source":"oban","duration":246,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:01:00.627 [info] {"source":"oban","duration":589,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:01:30.627 [info] {"source":"oban","duration":505,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:02:00.266 [info] {"source":"oban","duration":136,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:02:00.629 [info] {"source":"oban","duration":576,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:02:30.630 [info] {"source":"oban","duration":578,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:03:00.267 [info] {"source":"oban","duration":183,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:03:00.631 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:03:30.632 [info] {"source":"oban","duration":520,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:04:00.268 [info] {"source":"oban","duration":163,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:04:00.633 [info] {"source":"oban","duration":726,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:04:30.633 [info] {"source":"oban","duration":540,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:05:00.269 [info] {"source":"oban","duration":140,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:05:00.635 [info] {"source":"oban","duration":591,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:05:30.635 [info] {"source":"oban","duration":545,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:06:00.270 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:06:00.636 [info] {"source":"oban","duration":572,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:06:30.637 [info] {"source":"oban","duration":544,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:07:00.271 [info] {"source":"oban","duration":146,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:07:00.639 [info] {"source":"oban","duration":581,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:07:30.639 [info] {"source":"oban","duration":542,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:08:00.272 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:08:00.641 [info] {"source":"oban","duration":611,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:08:30.641 [info] {"source":"oban","duration":512,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:09:00.273 [info] {"source":"oban","duration":134,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:09:00.642 [info] {"source":"oban","duration":536,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:09:30.644 [info] {"source":"oban","duration":492,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:10:00.274 [info] {"source":"oban","duration":133,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:10:00.644 [info] {"source":"oban","duration":385,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:10:30.645 [info] {"source":"oban","duration":563,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:11:00.275 [info] {"source":"oban","duration":135,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:11:00.647 [info] {"source":"oban","duration":859,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:11:30.648 [info] {"source":"oban","duration":572,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:12:00.276 [info] {"source":"oban","duration":218,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:12:00.649 [info] {"source":"oban","duration":550,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:12:30.651 [info] {"source":"oban","duration":739,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:13:00.277 [info] {"source":"oban","duration":147,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:13:00.652 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:13:30.653 [info] {"source":"oban","duration":682,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:14:00.278 [info] {"source":"oban","duration":130,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:14:00.653 [info] {"source":"oban","duration":538,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:14:30.655 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:15:00.279 [info] {"source":"oban","duration":283,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:15:00.656 [info] {"source":"oban","duration":588,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:15:30.657 [info] {"source":"oban","duration":582,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:16:00.280 [info] {"source":"oban","duration":257,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:16:00.657 [info] {"source":"oban","duration":546,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:16:30.659 [info] {"source":"oban","duration":591,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:17:00.281 [info] {"source":"oban","duration":292,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:17:00.660 [info] {"source":"oban","duration":590,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:17:30.661 [info] {"source":"oban","duration":1047,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:18:00.282 [info] {"source":"oban","duration":376,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:18:00.662 [info] {"source":"oban","duration":555,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:18:30.664 [info] {"source":"oban","duration":608,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:19:00.291 [info] {"source":"oban","duration":5983,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:19:00.665 [info] {"source":"oban","duration":626,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:19:30.665 [info] {"source":"oban","duration":557,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:20:00.294 [info] {"source":"oban","duration":68,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:20:00.667 [info] {"source":"oban","duration":797,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:20:30.669 [info] {"source":"oban","duration":624,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:21:00.302 [info] {"source":"oban","duration":2787,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:21:00.669 [info] {"source":"oban","duration":542,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:21:30.671 [info] {"source":"oban","duration":956,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:22:00.303 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:22:00.672 [info] {"source":"oban","duration":564,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:22:30.674 [info] {"source":"oban","duration":740,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:23:00.304 [info] {"source":"oban","duration":155,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:23:00.674 [info] {"source":"oban","duration":556,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:23:30.676 [info] {"source":"oban","duration":697,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:24:00.305 [info] {"source":"oban","duration":140,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:24:00.677 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:24:30.677 [info] {"source":"oban","duration":534,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:25:00.306 [info] {"source":"oban","duration":149,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:25:00.679 [info] {"source":"oban","duration":699,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:25:30.680 [info] {"source":"oban","duration":628,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:26:00.307 [info] {"source":"oban","duration":148,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:26:00.681 [info] {"source":"oban","duration":575,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:26:30.682 [info] {"source":"oban","duration":831,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:27:00.308 [info] {"source":"oban","duration":141,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:27:00.684 [info] {"source":"oban","duration":600,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:27:30.685 [info] {"source":"oban","duration":1002,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:28:00.309 [info] {"source":"oban","duration":181,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:28:00.687 [info] {"source":"oban","duration":907,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:28:08.859 [info] {"args":{"id":1},"id":14786,"meta":{},"system_time":1783787288859833648,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 12:28:08.861 [debug] QUERY OK source="sources" db=1.6ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:08.863 [debug] QUERY OK source="settings" db=1.6ms idle=307.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_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:08.865 [debug] QUERY OK source="media_items" db=2.1ms idle=309.1ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 12:28:08.867 [debug] QUERY OK source="media_items" db=1.6ms idle=14.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 12:28:08.867 [debug] QUERY OK source="media_profiles" db=0.1ms idle=7.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:28:08.868 [debug] QUERY OK source="settings" db=0.0ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:08.868 [debug] QUERY OK source="settings" db=0.0ms idle=4.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:08.869 [debug] QUERY OK source="media_items" db=0.9ms idle=2.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."source_id" = ?) ORDER BY m0."uploaded_at" DESC LIMIT 50 OFFSET 20 [1] 12:28:08.871 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 12:28:08.871 [debug] Current batch of media processed. Will check again in 1000ms 12:28:08.871 [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 [] 12:28:08.871 [debug] QUERY OK source="settings" db=0.0ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:08.872 [debug] QUERY OK source="settings" db=0.0ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:28:08.872 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/@thrivans --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Thrivans/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:2160,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/dd/09/dd09cb28acb62e943dcac1c77d4a8f456086a5298221fe2235c265d30e99eb40.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/09/d1/09d15062fc6bd27e144d2f2e962807d69a6eaec5421580f0506be7e025268178.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 12:28:09.872 [debug] Current batch of media processed. Will check again in 1000ms 12:28:10.873 [debug] Current batch of media processed. Will check again in 1000ms 12:28:11.874 [debug] Current batch of media processed. Will check again in 1000ms 12:28:12.875 [debug] Current batch of media processed. Will check again in 1000ms 12:28:13.876 [debug] Current batch of media processed. Will check again in 1000ms 12:28:14.877 [debug] Current batch of media processed. Will check again in 1000ms 12:28:15.878 [debug] Current batch of media processed. Will check again in 1000ms 12:28:16.879 [debug] Current batch of media processed. Will check again in 1000ms 12:28:17.880 [debug] Current batch of media processed. Will check again in 1000ms 12:28:18.881 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video we share how and why we build our vans using extruded aluminum cabinetry.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1331, "filename" => "/downloads/Thrivans/2026-06-20 Van building with 8020 aluminum cabinets/Van building with 8020 aluminum cabinets [mPuU-dpGpLA].mkv", "id" => "mPuU-dpGpLA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mPuU-dpGpLA", "playlist_index" => 1, "timestamp" => 1781984878, "title" => "Van building with 8020 aluminum cabinets", "upload_date" => "20260620"} 12:28:18.882 [debug] QUERY OK source="sources" db=0.1ms idle=327.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:28:18.882 [debug] QUERY OK source="sources" db=0.1ms idle=327.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:18.882 [debug] QUERY OK source="media_items" db=0.4ms idle=327.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-20 19:47:58Z], 1] 12:28:18.884 [debug] QUERY OK source="media_items" db=0.9ms idle=328.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we share how and why we build our vans using extruded aluminum cabinetry.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van building with 8020 aluminum cabinets", "c23f345a-9015-4c4b-8dc7-a1f3722d9c1b", 1, [], 1331, false, "mPuU-dpGpLA", "https://www.youtube.com/watch?v=mPuU-dpGpLA", 1, "/downloads/Thrivans/2026-06-20 Van building with 8020 aluminum cabinets/Van building with 8020 aluminum cabinets [mPuU-dpGpLA].mkv", false, false, false, 98, ~U[2026-06-20 19:47:58Z], ~U[2026-07-11 16:28:18Z], ~U[2026-07-11 16:28:18Z], "In this video we share how and why we build our vans using extruded aluminum cabinetry.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van building with 8020 aluminum cabinets", 1, 1331, false, "mPuU-dpGpLA", "https://www.youtube.com/watch?v=mPuU-dpGpLA", "/downloads/Thrivans/2026-06-20 Van building with 8020 aluminum cabinets/Van building with 8020 aluminum cabinets [mPuU-dpGpLA].mkv", false, ~U[2026-06-20 19:47:58Z]] 12:28:18.884 [debug] QUERY OK source="sources" db=0.2ms idle=22.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:18.885 [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:28:18.885 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [102094] 12:28:18.885 [debug] Current batch of media processed. Will check again in 1000ms 12:28:19.886 [debug] Current batch of media processed. Will check again in 1000ms 12:28:20.887 [debug] Current batch of media processed. Will check again in 1000ms 12:28:21.888 [debug] Current batch of media processed. Will check again in 1000ms 12:28:22.889 [debug] Current batch of media processed. Will check again in 1000ms 12:28:23.890 [debug] Current batch of media processed. Will check again in 1000ms 12:28:24.891 [debug] Current batch of media processed. Will check again in 1000ms 12:28:25.892 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video we share how to trickle charge your starter battery from your house system.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 630, "filename" => "/downloads/Thrivans/2026-05-27 House Battery to Starter Battery: The Simple Trickle Charge Hack/House Battery to Starter Battery: The Simple Trickle Charge Hack [nKSNG0mA1y4].mkv", "id" => "nKSNG0mA1y4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=nKSNG0mA1y4", "playlist_index" => 2, "timestamp" => 1779889980, "title" => "House Battery to Starter Battery: The Simple Trickle Charge Hack", "upload_date" => "20260527"} 12:28:25.893 [debug] QUERY OK source="sources" db=0.1ms idle=1338.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:28:25.893 [debug] QUERY OK source="sources" db=0.1ms idle=1338.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:25.894 [debug] QUERY OK source="media_items" db=0.4ms idle=1339.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-27 13:53:00Z], 1] 12:28:25.895 [debug] QUERY OK source="media_items" db=0.9ms idle=1026.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we share how to trickle charge your starter battery from your house system.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "House Battery to Starter Battery: The Simple Trickle Charge Hack", "29b4d9e1-1765-4499-880f-f03415534ab8", 1, [], 630, false, "nKSNG0mA1y4", "https://www.youtube.com/watch?v=nKSNG0mA1y4", 2, "/downloads/Thrivans/2026-05-27 House Battery to Starter Battery: The Simple Trickle Charge Hack/House Battery to Starter Battery: The Simple Trickle Charge Hack [nKSNG0mA1y4].mkv", false, false, false, 98, ~U[2026-05-27 13:53:00Z], ~U[2026-07-11 16:28:25Z], ~U[2026-07-11 16:28:25Z], "In this video we share how to trickle charge your starter battery from your house system.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "House Battery to Starter Battery: The Simple Trickle Charge Hack", 1, 630, false, "nKSNG0mA1y4", "https://www.youtube.com/watch?v=nKSNG0mA1y4", "/downloads/Thrivans/2026-05-27 House Battery to Starter Battery: The Simple Trickle Charge Hack/House Battery to Starter Battery: The Simple Trickle Charge Hack [nKSNG0mA1y4].mkv", false, ~U[2026-05-27 13:53:00Z]] 12:28:25.895 [debug] QUERY OK source="sources" db=0.1ms idle=26.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:25.895 [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] 12:28:25.896 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [46807] 12:28:25.896 [debug] Current batch of media processed. Will check again in 1000ms 12:28:26.897 [debug] Current batch of media processed. Will check again in 1000ms 12:28:27.898 [debug] Current batch of media processed. Will check again in 1000ms 12:28:28.899 [debug] Current batch of media processed. Will check again in 1000ms 12:28:29.900 [debug] Current batch of media processed. Will check again in 1000ms 12:28:30.689 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:28:30.901 [debug] Current batch of media processed. Will check again in 1000ms 12:28:31.902 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video we share how to set up a Victron Cerbo GX to read tank levels using a tank level sending unit.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 583, "filename" => "/downloads/Thrivans/2026-05-16 Van Electrical: Connecting Tanks to a Cerbo GX/Van Electrical: Connecting Tanks to a Cerbo GX [rBC21-8JNmM].mkv", "id" => "rBC21-8JNmM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rBC21-8JNmM", "playlist_index" => 3, "timestamp" => 1778944688, "title" => "Van Electrical: Connecting Tanks to a Cerbo GX", "upload_date" => "20260516"} 12:28:31.903 [debug] QUERY OK source="sources" db=0.1ms idle=1026.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:28:31.903 [debug] QUERY OK source="sources" db=0.1ms idle=348.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:31.903 [debug] QUERY OK source="media_items" db=0.4ms idle=348.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-16 15:18:08Z], 1] 12:28:31.905 [debug] QUERY OK source="media_items" db=1.6ms idle=349.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we share how to set up a Victron Cerbo GX to read tank levels using a tank level sending unit.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical: Connecting Tanks to a Cerbo GX", "6008f389-13bf-4f25-abd2-404d91f1315b", 1, [], 583, false, "rBC21-8JNmM", "https://www.youtube.com/watch?v=rBC21-8JNmM", 3, "/downloads/Thrivans/2026-05-16 Van Electrical: Connecting Tanks to a Cerbo GX/Van Electrical: Connecting Tanks to a Cerbo GX [rBC21-8JNmM].mkv", false, false, false, 98, ~U[2026-05-16 15:18:08Z], ~U[2026-07-11 16:28:31Z], ~U[2026-07-11 16:28:31Z], "In this video we share how to set up a Victron Cerbo GX to read tank levels using a tank level sending unit.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical: Connecting Tanks to a Cerbo GX", 1, 583, false, "rBC21-8JNmM", "https://www.youtube.com/watch?v=rBC21-8JNmM", "/downloads/Thrivans/2026-05-16 Van Electrical: Connecting Tanks to a Cerbo GX/Van Electrical: Connecting Tanks to a Cerbo GX [rBC21-8JNmM].mkv", false, ~U[2026-05-16 15:18:08Z]] 12:28:31.906 [debug] QUERY OK source="sources" db=0.2ms idle=28.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:31.906 [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] 12:28:31.907 [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 [24342] 12:28:31.907 [debug] Current batch of media processed. Will check again in 1000ms 12:28:32.907 [debug] Current batch of media processed. Will check again in 1000ms 12:28:33.908 [debug] Current batch of media processed. Will check again in 1000ms 12:28:34.909 [debug] Current batch of media processed. Will check again in 1000ms 12:28:35.910 [debug] Current batch of media processed. Will check again in 1000ms 12:28:36.911 [debug] Current batch of media processed. Will check again in 1000ms 12:28:37.912 [debug] Current batch of media processed. Will check again in 1000ms 12:28:38.913 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video we do a deep dive into electrical and plumbing systems for van conversions.\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nDROP-IN ELECTRICAL & PLUMBING SYSTEMS: https://www.thrivecraftedvans.com/drop-in-electrical-system\n\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 2050, "filename" => "/downloads/Thrivans/2026-05-10 Camper Van Electrical and Plumbing System Guide/Camper Van Electrical and Plumbing System Guide [jBHUjmEHuQM].mkv", "id" => "jBHUjmEHuQM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jBHUjmEHuQM", "playlist_index" => 4, "timestamp" => 1778420964, "title" => "Camper Van Electrical and Plumbing System Guide", "upload_date" => "20260510"} 12:28:38.914 [debug] QUERY OK source="sources" db=0.1ms idle=1359.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:28:38.914 [debug] QUERY OK source="sources" db=0.1ms idle=1359.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:38.915 [debug] QUERY OK source="media_items" db=0.4ms idle=1360.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-10 13:49:24Z], 1] 12:28:38.916 [debug] QUERY OK source="media_items" db=0.9ms idle=1032.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we do a deep dive into electrical and plumbing systems for van conversions.\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nDROP-IN ELECTRICAL & PLUMBING SYSTEMS: https://www.thrivecraftedvans.com/drop-in-electrical-system\n\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Camper Van Electrical and Plumbing System Guide", "7dfe24dd-16f2-4ef3-b088-50070779c4cc", 1, [], 2050, false, "jBHUjmEHuQM", "https://www.youtube.com/watch?v=jBHUjmEHuQM", 4, "/downloads/Thrivans/2026-05-10 Camper Van Electrical and Plumbing System Guide/Camper Van Electrical and Plumbing System Guide [jBHUjmEHuQM].mkv", false, false, false, 98, ~U[2026-05-10 13:49:24Z], ~U[2026-07-11 16:28:38Z], ~U[2026-07-11 16:28:38Z], "In this video we do a deep dive into electrical and plumbing systems for van conversions.\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nDROP-IN ELECTRICAL & PLUMBING SYSTEMS: https://www.thrivecraftedvans.com/drop-in-electrical-system\n\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Camper Van Electrical and Plumbing System Guide", 1, 2050, false, "jBHUjmEHuQM", "https://www.youtube.com/watch?v=jBHUjmEHuQM", "/downloads/Thrivans/2026-05-10 Camper Van Electrical and Plumbing System Guide/Camper Van Electrical and Plumbing System Guide [jBHUjmEHuQM].mkv", false, ~U[2026-05-10 13:49:24Z]] 12:28:38.917 [debug] QUERY OK source="sources" db=0.1ms idle=32.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:38.917 [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:28:38.917 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1] 12:28:38.917 [debug] Current batch of media processed. Will check again in 1000ms 12:28:39.918 [debug] Current batch of media processed. Will check again in 1000ms 12:28:40.919 [debug] Current batch of media processed. Will check again in 1000ms 12:28:41.920 [debug] Current batch of media processed. Will check again in 1000ms 12:28:42.921 [debug] Current batch of media processed. Will check again in 1000ms 12:28:43.922 [debug] Current batch of media processed. Will check again in 1000ms 12:28:44.923 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video we unbox and review the Trio Starlink Mini Interior Mount.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\nTrio Starlink Mini Interior Mount: https://www.trioflatmount.com/?sca_ref=10879737.PyFYB73BUvd\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 823, "filename" => "/downloads/Thrivans/2026-04-26 Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!)/Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!) [hGUuE_SLYuA].mkv", "id" => "hGUuE_SLYuA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hGUuE_SLYuA", "playlist_index" => 5, "timestamp" => 1777220504, "title" => "Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!)", "upload_date" => "20260426"} 12:28:44.924 [debug] QUERY OK source="sources" db=0.1ms idle=369.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:28:44.924 [debug] QUERY OK source="sources" db=0.1ms idle=369.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:44.925 [debug] QUERY OK source="media_items" db=0.4ms idle=370.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-26 16:21:44Z], 1] 12:28:44.926 [debug] QUERY OK source="media_items" db=0.8ms idle=370.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we unbox and review the Trio Starlink Mini Interior Mount.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\nTrio Starlink Mini Interior Mount: https://www.trioflatmount.com/?sca_ref=10879737.PyFYB73BUvd\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!)", "97f260c6-378f-4fff-ba93-f74495c28f70", 1, [], 823, false, "hGUuE_SLYuA", "https://www.youtube.com/watch?v=hGUuE_SLYuA", 5, "/downloads/Thrivans/2026-04-26 Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!)/Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!) [hGUuE_SLYuA].mkv", false, false, false, 98, ~U[2026-04-26 16:21:44Z], ~U[2026-07-11 16:28:44Z], ~U[2026-07-11 16:28:44Z], "In this video we unbox and review the Trio Starlink Mini Interior Mount.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\nTrio Starlink Mini Interior Mount: https://www.trioflatmount.com/?sca_ref=10879737.PyFYB73BUvd\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!)", 1, 823, false, "hGUuE_SLYuA", "https://www.youtube.com/watch?v=hGUuE_SLYuA", "/downloads/Thrivans/2026-04-26 Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!)/Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!) [hGUuE_SLYuA].mkv", false, ~U[2026-04-26 16:21:44Z]] 12:28:44.926 [debug] QUERY OK source="sources" db=0.1ms idle=35.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:44.926 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:28:44.927 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2] 12:28:44.927 [debug] Current batch of media processed. Will check again in 1000ms 12:28:45.928 [debug] Current batch of media processed. Will check again in 1000ms 12:28:46.929 [debug] Current batch of media processed. Will check again in 1000ms 12:28:47.930 [debug] Current batch of media processed. Will check again in 1000ms 12:28:48.931 [debug] Current batch of media processed. Will check again in 1000ms 12:28:49.932 [debug] Current batch of media processed. Will check again in 1000ms 12:28:50.933 [debug] Current batch of media processed. Will check again in 1000ms 12:28:51.934 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We compare the Maxxair and AirPlus rooftop fans for your van build. The tried and true stalwart vs the new kid on the block.\nMaxxaire Fan: https://amzn.to/3Y0EJuC\nAirPlus Fan: https://orionvangear.com/?ref=ituvymxb\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1222, "filename" => "/downloads/Thrivans/2026-04-18 Maxxair vs. AirPlus | Don't Buy the Wrong Fan/Maxxair vs. AirPlus | Don't Buy the Wrong Fan [Tyl37aSGbDg].mkv", "id" => "Tyl37aSGbDg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Tyl37aSGbDg", "playlist_index" => 6, "timestamp" => 1776513653, "title" => "Maxxair vs. AirPlus | Don't Buy the Wrong Fan", "upload_date" => "20260418"} 12:28:51.935 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1380.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:28:51.935 [debug] QUERY OK source="sources" db=0.1ms idle=1381.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:51.936 [debug] QUERY OK source="media_items" db=0.4ms idle=1381.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 12:00:53Z], 1] 12:28:51.938 [debug] QUERY OK source="media_items" db=1.6ms idle=1038.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We compare the Maxxair and AirPlus rooftop fans for your van build. The tried and true stalwart vs the new kid on the block.\nMaxxaire Fan: https://amzn.to/3Y0EJuC\nAirPlus Fan: https://orionvangear.com/?ref=ituvymxb\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Maxxair vs. AirPlus | Don't Buy the Wrong Fan", "14032bd1-3ac1-4e53-aff5-8d711a23e3e0", 1, [], 1222, false, "Tyl37aSGbDg", "https://www.youtube.com/watch?v=Tyl37aSGbDg", 6, "/downloads/Thrivans/2026-04-18 Maxxair vs. AirPlus | Don't Buy the Wrong Fan/Maxxair vs. AirPlus | Don't Buy the Wrong Fan [Tyl37aSGbDg].mkv", false, false, false, 98, ~U[2026-04-18 12:00:53Z], ~U[2026-07-11 16:28:51Z], ~U[2026-07-11 16:28:51Z], "We compare the Maxxair and AirPlus rooftop fans for your van build. The tried and true stalwart vs the new kid on the block.\nMaxxaire Fan: https://amzn.to/3Y0EJuC\nAirPlus Fan: https://orionvangear.com/?ref=ituvymxb\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Maxxair vs. AirPlus | Don't Buy the Wrong Fan", 1, 1222, false, "Tyl37aSGbDg", "https://www.youtube.com/watch?v=Tyl37aSGbDg", "/downloads/Thrivans/2026-04-18 Maxxair vs. AirPlus | Don't Buy the Wrong Fan/Maxxair vs. AirPlus | Don't Buy the Wrong Fan [Tyl37aSGbDg].mkv", false, ~U[2026-04-18 12:00:53Z]] 12:28:51.938 [debug] QUERY OK source="sources" db=0.1ms idle=39.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:51.938 [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:28:51.939 [debug] QUERY OK source="media_items" db=0.1ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [3] 12:28:51.939 [debug] Current batch of media processed. Will check again in 1000ms 12:28:52.940 [debug] Current batch of media processed. Will check again in 1000ms 12:28:53.941 [debug] Current batch of media processed. Will check again in 1000ms 12:28:54.942 [debug] Current batch of media processed. Will check again in 1000ms 12:28:55.943 [debug] Current batch of media processed. Will check again in 1000ms 12:28:56.944 [debug] Current batch of media processed. Will check again in 1000ms 12:28:57.945 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We compare three roof mounts for Starlink Mini.\nOwl Vans Mount: https://owlvans.com/products/starlink-mini-magnetic-mount\nVeritas Vans Mount: https://amzn.to/4uURbu4\nTrio Speedmount: https://www.trioflatmount.com/?sca_ref=10879737.PyFYB73BUvd\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 631, "filename" => "/downloads/Thrivans/2026-03-28 Starlink Mini Mount Showdown: Owl vs Trio vs Veritas/Starlink Mini Mount Showdown: Owl vs Trio vs Veritas [FmhFOTnDHVk].mkv", "id" => "FmhFOTnDHVk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FmhFOTnDHVk", "playlist_index" => 7, "timestamp" => 1774709212, "title" => "Starlink Mini Mount Showdown: Owl vs Trio vs Veritas", "upload_date" => "20260328"} 12:28:57.946 [debug] QUERY OK source="sources" db=0.1ms idle=391.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:28:57.946 [debug] QUERY OK source="sources" db=0.0ms idle=391.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:57.946 [debug] QUERY OK source="media_items" db=0.4ms idle=391.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-28 14:46:52Z], 1] 12:28:57.948 [debug] QUERY OK source="media_items" db=0.8ms idle=392.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We compare three roof mounts for Starlink Mini.\nOwl Vans Mount: https://owlvans.com/products/starlink-mini-magnetic-mount\nVeritas Vans Mount: https://amzn.to/4uURbu4\nTrio Speedmount: https://www.trioflatmount.com/?sca_ref=10879737.PyFYB73BUvd\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Mount Showdown: Owl vs Trio vs Veritas", "0739b3fa-64ba-419e-b70b-dfcaa0a88ea5", 1, [], 631, false, "FmhFOTnDHVk", "https://www.youtube.com/watch?v=FmhFOTnDHVk", 7, "/downloads/Thrivans/2026-03-28 Starlink Mini Mount Showdown: Owl vs Trio vs Veritas/Starlink Mini Mount Showdown: Owl vs Trio vs Veritas [FmhFOTnDHVk].mkv", false, false, false, 98, ~U[2026-03-28 14:46:52Z], ~U[2026-07-11 16:28:57Z], ~U[2026-07-11 16:28:57Z], "We compare three roof mounts for Starlink Mini.\nOwl Vans Mount: https://owlvans.com/products/starlink-mini-magnetic-mount\nVeritas Vans Mount: https://amzn.to/4uURbu4\nTrio Speedmount: https://www.trioflatmount.com/?sca_ref=10879737.PyFYB73BUvd\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Mount Showdown: Owl vs Trio vs Veritas", 1, 631, false, "FmhFOTnDHVk", "https://www.youtube.com/watch?v=FmhFOTnDHVk", "/downloads/Thrivans/2026-03-28 Starlink Mini Mount Showdown: Owl vs Trio vs Veritas/Starlink Mini Mount Showdown: Owl vs Trio vs Veritas [FmhFOTnDHVk].mkv", false, ~U[2026-03-28 14:46:52Z]] 12:28:57.948 [debug] QUERY OK source="sources" db=0.1ms idle=41.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:28:57.948 [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] 12:28:57.949 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [4] 12:28:57.949 [debug] Current batch of media processed. Will check again in 1000ms 12:28:58.949 [debug] Current batch of media processed. Will check again in 1000ms 12:28:59.950 [debug] Current batch of media processed. Will check again in 1000ms 12:29:00.310 [info] {"source":"oban","duration":240,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:29:00.690 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:29:00.951 [debug] Current batch of media processed. Will check again in 1000ms 12:29:01.952 [debug] Current batch of media processed. Will check again in 1000ms 12:29:02.953 [debug] Current batch of media processed. Will check again in 1000ms 12:29:03.954 [debug] Current batch of media processed. Will check again in 1000ms 12:29:04.955 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Starlink is a game changer for vanlife. In this video we discuss different options.\n*************************************************************************************************\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n*************************************************************************************************\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 853, "filename" => "/downloads/Thrivans/2026-03-21 Starlink Mini Electrical Setup- Don't Make This Mistake/Starlink Mini Electrical Setup- Don't Make This Mistake [0zcdpvk6GUg].mkv", "id" => "0zcdpvk6GUg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0zcdpvk6GUg", "playlist_index" => 8, "timestamp" => 1774109671, "title" => "Starlink Mini Electrical Setup- Don't Make This Mistake", "upload_date" => "20260321"} 12:29:04.956 [debug] QUERY OK source="sources" db=0.1ms idle=1401.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:29:04.956 [debug] QUERY OK source="sources" db=0.1ms idle=1401.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:04.957 [debug] QUERY OK source="media_items" db=0.4ms idle=1042.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-21 16:14:31Z], 1] 12:29:04.959 [debug] QUERY OK source="media_items" db=1.5ms idle=402.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Starlink is a game changer for vanlife. In this video we discuss different options.\n*************************************************************************************************\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n*************************************************************************************************\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Electrical Setup- Don't Make This Mistake", "5d0bc5d0-5d23-4a17-a747-5c6b59d0f523", 1, [], 853, false, "0zcdpvk6GUg", "https://www.youtube.com/watch?v=0zcdpvk6GUg", 8, "/downloads/Thrivans/2026-03-21 Starlink Mini Electrical Setup- Don't Make This Mistake/Starlink Mini Electrical Setup- Don't Make This Mistake [0zcdpvk6GUg].mkv", false, false, false, 98, ~U[2026-03-21 16:14:31Z], ~U[2026-07-11 16:29:04Z], ~U[2026-07-11 16:29:04Z], "Starlink is a game changer for vanlife. In this video we discuss different options.\n*************************************************************************************************\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n*************************************************************************************************\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Electrical Setup- Don't Make This Mistake", 1, 853, false, "0zcdpvk6GUg", "https://www.youtube.com/watch?v=0zcdpvk6GUg", "/downloads/Thrivans/2026-03-21 Starlink Mini Electrical Setup- Don't Make This Mistake/Starlink Mini Electrical Setup- Don't Make This Mistake [0zcdpvk6GUg].mkv", false, ~U[2026-03-21 16:14:31Z]] 12:29:04.959 [debug] QUERY OK source="sources" db=0.1ms idle=43.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:04.959 [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] 12:29:04.960 [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 [5] 12:29:04.960 [debug] Current batch of media processed. Will check again in 1000ms 12:29:05.960 [debug] Current batch of media processed. Will check again in 1000ms 12:29:06.961 [debug] Current batch of media processed. Will check again in 1000ms 12:29:07.962 [debug] Current batch of media processed. Will check again in 1000ms 12:29:08.963 [debug] Current batch of media processed. Will check again in 1000ms 12:29:09.964 [debug] Current batch of media processed. Will check again in 1000ms 12:29:10.965 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1051, "filename" => "/downloads/Thrivans/2026-02-08 Rugged Meets Refined | Luxury Sprinter 170 Van Tour/Rugged Meets Refined | Luxury Sprinter 170 Van Tour [6wPAryyq1fc].mkv", "id" => "6wPAryyq1fc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6wPAryyq1fc", "playlist_index" => 9, "timestamp" => 1770566112, "title" => "Rugged Meets Refined | Luxury Sprinter 170 Van Tour", "upload_date" => "20260208"} 12:29:10.966 [debug] QUERY OK source="sources" db=0.2ms idle=411.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:29:10.966 [debug] QUERY OK source="sources" db=0.1ms idle=411.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:10.967 [debug] QUERY OK source="media_items" db=0.4ms idle=412.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-08 15:55:12Z], 1] 12:29:10.970 [debug] QUERY OK source="media_items" db=3.4ms idle=412.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Rugged Meets Refined | Luxury Sprinter 170 Van Tour", "48fe5bd3-4a5d-4c66-9cbe-ec528b7327cf", 1, [], 1051, false, "6wPAryyq1fc", "https://www.youtube.com/watch?v=6wPAryyq1fc", 9, "/downloads/Thrivans/2026-02-08 Rugged Meets Refined | Luxury Sprinter 170 Van Tour/Rugged Meets Refined | Luxury Sprinter 170 Van Tour [6wPAryyq1fc].mkv", false, false, false, 98, ~U[2026-02-08 15:55:12Z], ~U[2026-07-11 16:29:10Z], ~U[2026-07-11 16:29:10Z], "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Rugged Meets Refined | Luxury Sprinter 170 Van Tour", 1, 1051, false, "6wPAryyq1fc", "https://www.youtube.com/watch?v=6wPAryyq1fc", "/downloads/Thrivans/2026-02-08 Rugged Meets Refined | Luxury Sprinter 170 Van Tour/Rugged Meets Refined | Luxury Sprinter 170 Van Tour [6wPAryyq1fc].mkv", false, ~U[2026-02-08 15:55:12Z]] 12:29:10.971 [debug] QUERY OK source="sources" db=0.2ms idle=46.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:10.971 [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] 12:29:10.971 [debug] QUERY OK source="media_items" db=0.1ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [6] 12:29:10.971 [debug] Current batch of media processed. Will check again in 1000ms 12:29:11.972 [debug] Current batch of media processed. Will check again in 1000ms 12:29:12.973 [debug] Current batch of media processed. Will check again in 1000ms 12:29:13.974 [debug] Current batch of media processed. Will check again in 1000ms 12:29:14.975 [debug] Current batch of media processed. Will check again in 1000ms 12:29:15.976 [debug] Current batch of media processed. Will check again in 1000ms 12:29:16.977 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Best practices for alternator charing, whether you use the factory or a secondary alternator.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 911, "filename" => "/downloads/Thrivans/2026-02-01 Van Alternator Charging: Pro Tips/Van Alternator Charging: Pro Tips [P1vEaDCe2-I].mkv", "id" => "P1vEaDCe2-I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=P1vEaDCe2-I", "playlist_index" => 10, "timestamp" => 1769952634, "title" => "Van Alternator Charging: Pro Tips", "upload_date" => "20260201"} 12:29:16.978 [debug] QUERY OK source="sources" db=0.1ms idle=423.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:29:16.978 [debug] QUERY OK source="sources" db=0.0ms idle=423.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:16.978 [debug] QUERY OK source="media_items" db=0.4ms idle=423.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-01 13:30:34Z], 1] 12:29:16.980 [debug] QUERY OK source="media_items" db=0.8ms idle=424.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Best practices for alternator charing, whether you use the factory or a secondary alternator.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Alternator Charging: Pro Tips", "cd5c707a-6e7f-48bb-a65c-7ab47557e6f9", 1, [], 911, false, "P1vEaDCe2-I", "https://www.youtube.com/watch?v=P1vEaDCe2-I", 10, "/downloads/Thrivans/2026-02-01 Van Alternator Charging: Pro Tips/Van Alternator Charging: Pro Tips [P1vEaDCe2-I].mkv", false, false, false, 98, ~U[2026-02-01 13:30:34Z], ~U[2026-07-11 16:29:16Z], ~U[2026-07-11 16:29:16Z], "Best practices for alternator charing, whether you use the factory or a secondary alternator.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Alternator Charging: Pro Tips", 1, 911, false, "P1vEaDCe2-I", "https://www.youtube.com/watch?v=P1vEaDCe2-I", "/downloads/Thrivans/2026-02-01 Van Alternator Charging: Pro Tips/Van Alternator Charging: Pro Tips [P1vEaDCe2-I].mkv", false, ~U[2026-02-01 13:30:34Z]] 12:29:16.980 [debug] QUERY OK source="sources" db=0.1ms idle=48.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:16.980 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:16.981 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [7] 12:29:16.981 [debug] Current batch of media processed. Will check again in 1000ms 12:29:17.981 [debug] Current batch of media processed. Will check again in 1000ms 12:29:18.982 [debug] Current batch of media processed. Will check again in 1000ms 12:29:19.983 [debug] Current batch of media processed. Will check again in 1000ms 12:29:20.984 [debug] Current batch of media processed. Will check again in 1000ms 12:29:21.985 [debug] Current batch of media processed. Will check again in 1000ms 12:29:22.986 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1355, "filename" => "/downloads/Thrivans/2026-01-25 8020 Cabinetry- Hinges, Slides & Latches/8020 Cabinetry- Hinges, Slides & Latches [0j388SwvG84].mkv", "id" => "0j388SwvG84", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0j388SwvG84", "playlist_index" => 11, "timestamp" => 1769347801, "title" => "8020 Cabinetry- Hinges, Slides & Latches", "upload_date" => "20260125"} 12:29:22.987 [debug] QUERY OK source="sources" db=0.1ms idle=432.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:29:22.987 [debug] QUERY OK source="sources" db=0.1ms idle=432.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:22.988 [debug] QUERY OK source="media_items" db=0.4ms idle=433.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-25 13:30:01Z], 1] 12:29:22.989 [debug] QUERY OK source="media_items" db=0.8ms idle=433.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "8020 Cabinetry- Hinges, Slides & Latches", "7db18de3-df1f-4455-91a2-e6eee709a847", 1, [], 1355, false, "0j388SwvG84", "https://www.youtube.com/watch?v=0j388SwvG84", 11, "/downloads/Thrivans/2026-01-25 8020 Cabinetry- Hinges, Slides & Latches/8020 Cabinetry- Hinges, Slides & Latches [0j388SwvG84].mkv", false, false, false, 98, ~U[2026-01-25 13:30:01Z], ~U[2026-07-11 16:29:22Z], ~U[2026-07-11 16:29:22Z], "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "8020 Cabinetry- Hinges, Slides & Latches", 1, 1355, false, "0j388SwvG84", "https://www.youtube.com/watch?v=0j388SwvG84", "/downloads/Thrivans/2026-01-25 8020 Cabinetry- Hinges, Slides & Latches/8020 Cabinetry- Hinges, Slides & Latches [0j388SwvG84].mkv", false, ~U[2026-01-25 13:30:01Z]] 12:29:22.989 [debug] QUERY OK source="sources" db=0.1ms idle=51.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:22.989 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:22.990 [debug] QUERY OK source="media_items" db=0.1ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [8] 12:29:22.990 [debug] Current batch of media processed. Will check again in 1000ms 12:29:23.991 [debug] Current batch of media processed. Will check again in 1000ms 12:29:24.992 [debug] Current batch of media processed. Will check again in 1000ms 12:29:25.993 [debug] Current batch of media processed. Will check again in 1000ms 12:29:26.994 [debug] Current batch of media processed. Will check again in 1000ms 12:29:27.995 [debug] Current batch of media processed. Will check again in 1000ms 12:29:28.996 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1207, "filename" => "/downloads/Thrivans/2026-01-18 Van Electrical & Plumbing Setup. Updated for 2026#/Van Electrical & Plumbing Setup. Updated for 2026. [CpqIkR4Ep1s].mkv", "id" => "CpqIkR4Ep1s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CpqIkR4Ep1s", "playlist_index" => 12, "timestamp" => 1768744818, "title" => "Van Electrical & Plumbing Setup. Updated for 2026.", "upload_date" => "20260118"} 12:29:28.997 [debug] QUERY OK source="sources" db=0.2ms idle=442.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:29:28.997 [debug] QUERY OK source="sources" db=0.0ms idle=442.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:28.997 [debug] QUERY OK source="media_items" db=0.4ms idle=442.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-18 14:00:18Z], 1] 12:29:28.999 [debug] QUERY OK source="media_items" db=1.6ms idle=443.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical & Plumbing Setup. Updated for 2026.", "ca05ec8a-c6be-4efd-a920-f526863834ad", 1, [], 1207, false, "CpqIkR4Ep1s", "https://www.youtube.com/watch?v=CpqIkR4Ep1s", 12, "/downloads/Thrivans/2026-01-18 Van Electrical & Plumbing Setup. Updated for 2026#/Van Electrical & Plumbing Setup. Updated for 2026. [CpqIkR4Ep1s].mkv", false, false, false, 98, ~U[2026-01-18 14:00:18Z], ~U[2026-07-11 16:29:28Z], ~U[2026-07-11 16:29:28Z], "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical & Plumbing Setup. Updated for 2026.", 1, 1207, false, "CpqIkR4Ep1s", "https://www.youtube.com/watch?v=CpqIkR4Ep1s", "/downloads/Thrivans/2026-01-18 Van Electrical & Plumbing Setup. Updated for 2026#/Van Electrical & Plumbing Setup. Updated for 2026. [CpqIkR4Ep1s].mkv", false, ~U[2026-01-18 14:00:18Z]] 12:29:29.000 [debug] QUERY OK source="sources" db=0.2ms idle=55.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:29.000 [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:29.000 [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 [9] 12:29:29.001 [debug] Current batch of media processed. Will check again in 1000ms 12:29:30.001 [debug] Current batch of media processed. Will check again in 1000ms 12:29:30.691 [info] {"source":"oban","duration":558,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:29:31.002 [debug] Current batch of media processed. Will check again in 1000ms 12:29:32.003 [debug] Current batch of media processed. Will check again in 1000ms 12:29:33.004 [debug] Current batch of media processed. Will check again in 1000ms 12:29:34.005 [debug] Current batch of media processed. Will check again in 1000ms 12:29:35.006 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Van Tour video of our favorite layout: The Moab\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nEPOCH BATTERIES: https://www.thrivecraftedvans.com/store/epoch-batteries\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nMOAB LAYOUT PLANS: https://www.thrivecraftedvans.com/store/p/moab-floor-plan-y5rsz\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1190, "filename" => "/downloads/Thrivans/2025-12-12 Van Builder Shares Most Popular Layout/Van Builder Shares Most Popular Layout [oP1_salDOSs].mkv", "id" => "oP1_salDOSs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oP1_salDOSs", "playlist_index" => 13, "timestamp" => 1765570888, "title" => "Van Builder Shares Most Popular Layout", "upload_date" => "20251212"} 12:29:35.007 [debug] QUERY OK source="sources" db=0.1ms idle=452.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:29:35.007 [debug] QUERY OK source="sources" db=0.1ms idle=452.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:35.007 [debug] QUERY OK source="media_items" db=0.4ms idle=452.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-12 20:21:28Z], 1] 12:29:35.010 [debug] QUERY OK source="media_items" db=1.9ms idle=453.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Van Tour video of our favorite layout: The Moab\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nEPOCH BATTERIES: https://www.thrivecraftedvans.com/store/epoch-batteries\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nMOAB LAYOUT PLANS: https://www.thrivecraftedvans.com/store/p/moab-floor-plan-y5rsz\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Builder Shares Most Popular Layout", "8aee0e61-f039-467c-9a12-11ce1744f30a", 1, [], 1190, false, "oP1_salDOSs", "https://www.youtube.com/watch?v=oP1_salDOSs", 13, "/downloads/Thrivans/2025-12-12 Van Builder Shares Most Popular Layout/Van Builder Shares Most Popular Layout [oP1_salDOSs].mkv", false, false, false, 98, ~U[2025-12-12 20:21:28Z], ~U[2026-07-11 16:29:35Z], ~U[2026-07-11 16:29:35Z], "Van Tour video of our favorite layout: The Moab\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nEPOCH BATTERIES: https://www.thrivecraftedvans.com/store/epoch-batteries\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nMOAB LAYOUT PLANS: https://www.thrivecraftedvans.com/store/p/moab-floor-plan-y5rsz\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Builder Shares Most Popular Layout", 1, 1190, false, "oP1_salDOSs", "https://www.youtube.com/watch?v=oP1_salDOSs", "/downloads/Thrivans/2025-12-12 Van Builder Shares Most Popular Layout/Van Builder Shares Most Popular Layout [oP1_salDOSs].mkv", false, ~U[2025-12-12 20:21:28Z]] 12:29:35.010 [debug] QUERY OK source="sources" db=0.2ms idle=60.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:35.010 [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] 12:29:35.011 [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 [10] 12:29:35.011 [debug] Current batch of media processed. Will check again in 1000ms 12:29:36.012 [debug] Current batch of media processed. Will check again in 1000ms 12:29:37.013 [debug] Current batch of media processed. Will check again in 1000ms 12:29:38.014 [debug] Current batch of media processed. Will check again in 1000ms 12:29:39.015 [debug] Current batch of media processed. Will check again in 1000ms 12:29:40.016 [debug] Current batch of media processed. Will check again in 1000ms 12:29:41.017 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We share our top 3 ways to attach panels to extruded aluminum AKA 8020 cabinets.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 734, "filename" => "/downloads/Thrivans/2025-11-26 Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips/Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips [v6Pp9X89VWM].mkv", "id" => "v6Pp9X89VWM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=v6Pp9X89VWM", "playlist_index" => 14, "timestamp" => 1764191395, "title" => "Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips", "upload_date" => "20251126"} 12:29:41.018 [debug] QUERY OK source="sources" db=0.1ms idle=463.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:29:41.018 [debug] QUERY OK source="sources" db=0.1ms idle=463.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:41.018 [debug] QUERY OK source="media_items" db=0.4ms idle=463.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-26 21:09:55Z], 1] 12:29:41.024 [debug] QUERY OK source="media_items" db=4.8ms idle=464.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We share our top 3 ways to attach panels to extruded aluminum AKA 8020 cabinets.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips", "b8094fa3-b50c-4ddc-815e-c5e7920de6c3", 1, [], 734, false, "v6Pp9X89VWM", "https://www.youtube.com/watch?v=v6Pp9X89VWM", 14, "/downloads/Thrivans/2025-11-26 Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips/Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips [v6Pp9X89VWM].mkv", false, false, false, 98, ~U[2025-11-26 21:09:55Z], ~U[2026-07-11 16:29:41Z], ~U[2026-07-11 16:29:41Z], "We share our top 3 ways to attach panels to extruded aluminum AKA 8020 cabinets.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips", 1, 734, false, "v6Pp9X89VWM", "https://www.youtube.com/watch?v=v6Pp9X89VWM", "/downloads/Thrivans/2025-11-26 Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips/Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips [v6Pp9X89VWM].mkv", false, ~U[2025-11-26 21:09:55Z]] 12:29:41.024 [debug] QUERY OK source="sources" db=0.1ms idle=68.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:41.024 [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] 12:29:41.025 [debug] QUERY OK source="media_items" db=0.1ms idle=6.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [11] 12:29:41.025 [debug] Current batch of media processed. Will check again in 1000ms 12:29:42.025 [debug] Current batch of media processed. Will check again in 1000ms 12:29:43.026 [debug] Current batch of media processed. Will check again in 1000ms 12:29:44.027 [debug] Current batch of media processed. Will check again in 1000ms 12:29:45.028 [debug] Current batch of media processed. Will check again in 1000ms 12:29:46.029 [debug] Current batch of media processed. Will check again in 1000ms 12:29:47.030 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We discuss exterior lighting for your camper van.\nLINKS TO PRODUCTS MENTIONED IN THIS VIDEO, PLUS OTHER PRODUCTS WE USE OUR BUILDS: \nhttps://tinyurl.com/3r4ns3h3\n\nCHECK OUT OUR STORE FOR DIY VAN BUILDER RESOURCES:\nhttps://www.thrivecraftedvans.com/store\n\nVAN BUILD SEQUENCE DOC: \nhttps://tinyurl.com/3ry8vne7\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 545, "filename" => "/downloads/Thrivans/2025-11-16 What's the Best Exterior Lighting for Your Van Conversion?/What's the Best Exterior Lighting for Your Van Conversion? [GPQXdQUUdNc].mkv", "id" => "GPQXdQUUdNc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GPQXdQUUdNc", "playlist_index" => 15, "timestamp" => 1763298035, "title" => "What's the Best Exterior Lighting for Your Van Conversion?", "upload_date" => "20251116"} 12:29:47.031 [debug] QUERY OK source="sources" db=0.2ms idle=476.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:29:47.031 [debug] QUERY OK source="sources" db=0.1ms idle=476.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:47.032 [debug] QUERY OK source="media_items" db=0.4ms idle=477.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-16 13:00:35Z], 1] 12:29:47.033 [debug] QUERY OK source="media_items" db=0.7ms idle=477.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We discuss exterior lighting for your camper van.\nLINKS TO PRODUCTS MENTIONED IN THIS VIDEO, PLUS OTHER PRODUCTS WE USE OUR BUILDS: \nhttps://tinyurl.com/3r4ns3h3\n\nCHECK OUT OUR STORE FOR DIY VAN BUILDER RESOURCES:\nhttps://www.thrivecraftedvans.com/store\n\nVAN BUILD SEQUENCE DOC: \nhttps://tinyurl.com/3ry8vne7\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "What's the Best Exterior Lighting for Your Van Conversion?", "0aba4c34-5c7e-49c3-b6a0-3f7e8dc7d729", 1, [], 545, false, "GPQXdQUUdNc", "https://www.youtube.com/watch?v=GPQXdQUUdNc", 15, "/downloads/Thrivans/2025-11-16 What's the Best Exterior Lighting for Your Van Conversion?/What's the Best Exterior Lighting for Your Van Conversion? [GPQXdQUUdNc].mkv", false, false, false, 98, ~U[2025-11-16 13:00:35Z], ~U[2026-07-11 16:29:47Z], ~U[2026-07-11 16:29:47Z], "We discuss exterior lighting for your camper van.\nLINKS TO PRODUCTS MENTIONED IN THIS VIDEO, PLUS OTHER PRODUCTS WE USE OUR BUILDS: \nhttps://tinyurl.com/3r4ns3h3\n\nCHECK OUT OUR STORE FOR DIY VAN BUILDER RESOURCES:\nhttps://www.thrivecraftedvans.com/store\n\nVAN BUILD SEQUENCE DOC: \nhttps://tinyurl.com/3ry8vne7\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "What's the Best Exterior Lighting for Your Van Conversion?", 1, 545, false, "GPQXdQUUdNc", "https://www.youtube.com/watch?v=GPQXdQUUdNc", "/downloads/Thrivans/2025-11-16 What's the Best Exterior Lighting for Your Van Conversion?/What's the Best Exterior Lighting for Your Van Conversion? [GPQXdQUUdNc].mkv", false, ~U[2025-11-16 13:00:35Z]] 12:29:47.033 [debug] QUERY OK source="sources" db=0.1ms idle=71.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:47.033 [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] 12:29:47.034 [debug] QUERY OK source="media_items" db=0.1ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [12] 12:29:47.034 [debug] Current batch of media processed. Will check again in 1000ms 12:29:48.034 [debug] Current batch of media processed. Will check again in 1000ms 12:29:49.035 [debug] Current batch of media processed. Will check again in 1000ms 12:29:50.036 [debug] Current batch of media processed. Will check again in 1000ms 12:29:51.037 [debug] Current batch of media processed. Will check again in 1000ms 12:29:52.038 [debug] Current batch of media processed. Will check again in 1000ms 12:29:53.039 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Pro van build explains pros and cons of 12 volt vs 24 volt vs 48 volt electrical systems.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nDIY VAN BUILD PRODUCTS & RESOURCES: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1455, "filename" => "/downloads/Thrivans/2025-11-02 Which Voltage Should You Choose for Your Van Build?/Which Voltage Should You Choose for Your Van Build? [psrAMjio430].mkv", "id" => "psrAMjio430", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=psrAMjio430", "playlist_index" => 16, "timestamp" => 1762088500, "title" => "Which Voltage Should You Choose for Your Van Build?", "upload_date" => "20251102"} 12:29:53.040 [debug] QUERY OK source="sources" db=0.2ms idle=485.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:29:53.040 [debug] QUERY OK source="sources" db=0.1ms idle=485.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:53.041 [debug] QUERY OK source="media_items" db=0.5ms idle=486.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-02 13:01:40Z], 1] 12:29:53.042 [debug] QUERY OK source="media_items" db=1.3ms idle=486.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Pro van build explains pros and cons of 12 volt vs 24 volt vs 48 volt electrical systems.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nDIY VAN BUILD PRODUCTS & RESOURCES: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Which Voltage Should You Choose for Your Van Build?", "76f62ddd-54a4-4c97-880f-a9715ee40fc2", 1, [], 1455, false, "psrAMjio430", "https://www.youtube.com/watch?v=psrAMjio430", 16, "/downloads/Thrivans/2025-11-02 Which Voltage Should You Choose for Your Van Build?/Which Voltage Should You Choose for Your Van Build? [psrAMjio430].mkv", false, false, false, 98, ~U[2025-11-02 13:01:40Z], ~U[2026-07-11 16:29:53Z], ~U[2026-07-11 16:29:53Z], "Pro van build explains pros and cons of 12 volt vs 24 volt vs 48 volt electrical systems.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nDIY VAN BUILD PRODUCTS & RESOURCES: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Which Voltage Should You Choose for Your Van Build?", 1, 1455, false, "psrAMjio430", "https://www.youtube.com/watch?v=psrAMjio430", "/downloads/Thrivans/2025-11-02 Which Voltage Should You Choose for Your Van Build?/Which Voltage Should You Choose for Your Van Build? [psrAMjio430].mkv", false, ~U[2025-11-02 13:01:40Z]] 12:29:53.043 [debug] QUERY OK source="sources" db=0.2ms idle=72.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:29:53.043 [debug] QUERY OK source="media_profiles" db=0.0ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:29:53.043 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [13] 12:29:53.043 [debug] Current batch of media processed. Will check again in 1000ms 12:29:54.044 [debug] Current batch of media processed. Will check again in 1000ms 12:29:55.045 [debug] Current batch of media processed. Will check again in 1000ms 12:29:56.046 [debug] Current batch of media processed. Will check again in 1000ms 12:29:57.047 [debug] Current batch of media processed. Will check again in 1000ms 12:29:58.048 [debug] Current batch of media processed. Will check again in 1000ms 12:29:59.049 [debug] Current batch of media processed. Will check again in 1000ms 12:30:00.050 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "How the sPod makes wiring exterior lights and accessories super easy.\nsPod BantamX: https://amzn.to/4nnwIJl\nS8 50\" Light Bar: https://amzn.to/4hsuffa\nS2 Sport Pod Lights: https://amzn.to/478VB6J\nLP6 Fog Lights: https://amzn.to/43tspFa\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 432, "filename" => "/downloads/Thrivans/2025-10-25 Easy Way to Control All Your Exterior Lighting!/Easy Way to Control All Your Exterior Lighting! [t2I_QvoofKg].mkv", "id" => "t2I_QvoofKg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=t2I_QvoofKg", "playlist_index" => 17, "timestamp" => 1761420807, "title" => "Easy Way to Control All Your Exterior Lighting!", "upload_date" => "20251025"} 12:30:00.050 [debug] QUERY OK source="sources" db=0.1ms idle=1496.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:30:00.051 [debug] QUERY OK source="sources" db=0.1ms idle=1496.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:00.052 [debug] QUERY OK source="media_items" db=0.5ms idle=1496.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-25 19:33:27Z], 1] 12:30:00.053 [debug] QUERY OK source="media_items" db=0.8ms idle=1075.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How the sPod makes wiring exterior lights and accessories super easy.\nsPod BantamX: https://amzn.to/4nnwIJl\nS8 50\" Light Bar: https://amzn.to/4hsuffa\nS2 Sport Pod Lights: https://amzn.to/478VB6J\nLP6 Fog Lights: https://amzn.to/43tspFa\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Easy Way to Control All Your Exterior Lighting!", "907f4d76-7cd9-4a8a-afc0-9abd97351e0f", 1, [], 432, false, "t2I_QvoofKg", "https://www.youtube.com/watch?v=t2I_QvoofKg", 17, "/downloads/Thrivans/2025-10-25 Easy Way to Control All Your Exterior Lighting!/Easy Way to Control All Your Exterior Lighting! [t2I_QvoofKg].mkv", false, false, false, 98, ~U[2025-10-25 19:33:27Z], ~U[2026-07-11 16:30:00Z], ~U[2026-07-11 16:30:00Z], "How the sPod makes wiring exterior lights and accessories super easy.\nsPod BantamX: https://amzn.to/4nnwIJl\nS8 50\" Light Bar: https://amzn.to/4hsuffa\nS2 Sport Pod Lights: https://amzn.to/478VB6J\nLP6 Fog Lights: https://amzn.to/43tspFa\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Easy Way to Control All Your Exterior Lighting!", 1, 432, false, "t2I_QvoofKg", "https://www.youtube.com/watch?v=t2I_QvoofKg", "/downloads/Thrivans/2025-10-25 Easy Way to Control All Your Exterior Lighting!/Easy Way to Control All Your Exterior Lighting! [t2I_QvoofKg].mkv", false, ~U[2025-10-25 19:33:27Z]] 12:30:00.053 [debug] QUERY OK source="sources" db=0.1ms idle=75.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:00.053 [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:30:00.054 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [14] 12:30:00.054 [debug] Current batch of media processed. Will check again in 1000ms 12:30:00.311 [info] {"source":"oban","duration":131,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:30:00.692 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:30:01.055 [debug] Current batch of media processed. Will check again in 1000ms 12:30:02.056 [debug] Current batch of media processed. Will check again in 1000ms 12:30:03.057 [debug] Current batch of media processed. Will check again in 1000ms 12:30:04.058 [debug] Current batch of media processed. Will check again in 1000ms 12:30:05.059 [debug] Current batch of media processed. Will check again in 1000ms 12:30:06.060 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Tips and tricks for building camper van cabinetry using extruded aluminum (AKA 8020).\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1563, "filename" => "/downloads/Thrivans/2025-10-12 Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020/Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020 [bzRIZwTsdKQ].mkv", "id" => "bzRIZwTsdKQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bzRIZwTsdKQ", "playlist_index" => 18, "timestamp" => 1760277815, "title" => "Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020", "upload_date" => "20251012"} 12:30:06.061 [debug] QUERY OK source="sources" db=0.1ms idle=1076.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:30:06.061 [debug] QUERY OK source="sources" db=0.2ms idle=506.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:06.062 [debug] QUERY OK source="media_items" db=0.4ms idle=507.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-12 14:03:35Z], 1] 12:30:06.064 [debug] QUERY OK source="media_items" db=1.5ms idle=507.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Tips and tricks for building camper van cabinetry using extruded aluminum (AKA 8020).\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020", "71b2e01a-39e4-4319-acb6-193d9661637e", 1, [], 1563, false, "bzRIZwTsdKQ", "https://www.youtube.com/watch?v=bzRIZwTsdKQ", 18, "/downloads/Thrivans/2025-10-12 Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020/Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020 [bzRIZwTsdKQ].mkv", false, false, false, 98, ~U[2025-10-12 14:03:35Z], ~U[2026-07-11 16:30:06Z], ~U[2026-07-11 16:30:06Z], "Tips and tricks for building camper van cabinetry using extruded aluminum (AKA 8020).\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020", 1, 1563, false, "bzRIZwTsdKQ", "https://www.youtube.com/watch?v=bzRIZwTsdKQ", "/downloads/Thrivans/2025-10-12 Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020/Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020 [bzRIZwTsdKQ].mkv", false, ~U[2025-10-12 14:03:35Z]] 12:30:06.064 [debug] QUERY OK source="sources" db=0.1ms idle=79.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:06.064 [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] 12:30:06.065 [debug] QUERY OK source="media_items" db=0.1ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [15] 12:30:06.065 [debug] Current batch of media processed. Will check again in 1000ms 12:30:07.065 [debug] Current batch of media processed. Will check again in 1000ms 12:30:08.066 [debug] Current batch of media processed. Will check again in 1000ms 12:30:09.067 [debug] Current batch of media processed. Will check again in 1000ms 12:30:10.068 [debug] Current batch of media processed. Will check again in 1000ms 12:30:11.069 [debug] Current batch of media processed. Will check again in 1000ms 12:30:12.070 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Overview of extruded aluminum cabinetry in a camper van.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nMOAB LAYOUT PLANS: https://www.thrivecraftedvans.com/store/p/moab-floor-plan-y5rsz\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "duration" => 1132, "filename" => "/downloads/Thrivans/2025-10-05 Is Extruded Aluminum the Best Material for Van Building?/Is Extruded Aluminum the Best Material for Van Building? [SCSJsWFelAk].mkv", "id" => "SCSJsWFelAk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=SCSJsWFelAk", "playlist_index" => 19, "timestamp" => 1759685566, "title" => "Is Extruded Aluminum the Best Material for Van Building?", "upload_date" => "20251005"} 12:30:12.071 [debug] QUERY OK source="sources" db=0.1ms idle=516.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:30:12.071 [debug] QUERY OK source="sources" db=0.1ms idle=516.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:12.071 [debug] QUERY OK source="media_items" db=0.4ms idle=516.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 17:32:46Z], 1] 12:30:12.073 [debug] QUERY OK source="media_items" db=0.8ms idle=517.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Overview of extruded aluminum cabinetry in a camper van.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nMOAB LAYOUT PLANS: https://www.thrivecraftedvans.com/store/p/moab-floor-plan-y5rsz\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Is Extruded Aluminum the Best Material for Van Building?", "32b6fb7c-5734-40e2-ac6b-af3c1c07cd84", 1, [], 1132, false, "SCSJsWFelAk", "https://www.youtube.com/watch?v=SCSJsWFelAk", 19, "/downloads/Thrivans/2025-10-05 Is Extruded Aluminum the Best Material for Van Building?/Is Extruded Aluminum the Best Material for Van Building? [SCSJsWFelAk].mkv", false, false, false, 98, ~U[2025-10-05 17:32:46Z], ~U[2026-07-11 16:30:12Z], ~U[2026-07-11 16:30:12Z], "Overview of extruded aluminum cabinetry in a camper van.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nMOAB LAYOUT PLANS: https://www.thrivecraftedvans.com/store/p/moab-floor-plan-y5rsz\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Is Extruded Aluminum the Best Material for Van Building?", 1, 1132, false, "SCSJsWFelAk", "https://www.youtube.com/watch?v=SCSJsWFelAk", "/downloads/Thrivans/2025-10-05 Is Extruded Aluminum the Best Material for Van Building?/Is Extruded Aluminum the Best Material for Van Building? [SCSJsWFelAk].mkv", false, ~U[2025-10-05 17:32:46Z]] 12:30:12.073 [debug] QUERY OK source="sources" db=0.1ms idle=81.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:12.073 [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] 12:30:12.074 [debug] QUERY OK source="media_items" db=0.1ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [16] 12:30:12.074 [debug] Current batch of media processed. Will check again in 1000ms 12:30:13.075 [debug] Current batch of media processed. Will check again in 1000ms 12:30:14.076 [debug] Current batch of media processed. Will check again in 1000ms 12:30:15.077 [debug] Current batch of media processed. Will check again in 1000ms 12:30:16.078 [debug] Current batch of media processed. Will check again in 1000ms 12:30:16.988 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/@thrivans --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Thrivans/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:2160,+codec:avc:m4a --format bestvideo*+bestaudio/best --break-on-existing --download-archive /tmp/pinchflat/data/dd/09/dd09cb28acb62e943dcac1c77d4a8f456086a5298221fe2235c265d30e99eb40.txt --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/09/d1/09d15062fc6bd27e144d2f2e962807d69a6eaec5421580f0506be7e025268178.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 101 with: 12:30:16.989 [debug] Gracefully stopping file follower 12:30:16.989 [debug] QUERY OK source="sources" db=0.1ms idle=1434.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 12:30:16.989 [debug] QUERY OK source="sources" db=0.1ms idle=1434.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:16.990 [debug] QUERY OK source="media_items" db=0.4ms idle=1435.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-06-20 19:47:58Z], 1] 12:30:16.991 [debug] QUERY OK source="media_items" db=0.8ms idle=1435.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we share how and why we build our vans using extruded aluminum cabinetry.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van building with 8020 aluminum cabinets", "639a3629-f6e2-43e4-b70a-c12d278d323c", 1, [], 1331, false, "mPuU-dpGpLA", "https://www.youtube.com/watch?v=mPuU-dpGpLA", 1, "/downloads/Thrivans/2026-06-20 Van building with 8020 aluminum cabinets/Van building with 8020 aluminum cabinets [mPuU-dpGpLA].mkv", false, false, false, 98, ~U[2026-06-20 19:47:58Z], ~U[2026-07-11 16:30:16Z], ~U[2026-07-11 16:30:16Z], "In this video we share how and why we build our vans using extruded aluminum cabinetry.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van building with 8020 aluminum cabinets", 1, 1331, false, "mPuU-dpGpLA", "https://www.youtube.com/watch?v=mPuU-dpGpLA", "/downloads/Thrivans/2026-06-20 Van building with 8020 aluminum cabinets/Van building with 8020 aluminum cabinets [mPuU-dpGpLA].mkv", false, ~U[2026-06-20 19:47:58Z]] 12:30:16.991 [debug] QUERY OK source="sources" db=0.1ms idle=995.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:16.992 [debug] QUERY OK source="media_items" db=0.4ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-27 13:53:00Z], 1] 12:30:16.993 [debug] QUERY OK source="media_items" db=0.9ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we share how to trickle charge your starter battery from your house system.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "House Battery to Starter Battery: The Simple Trickle Charge Hack", "24d4eed4-ab97-4b59-9dac-84d7703423d0", 1, [], 630, false, "nKSNG0mA1y4", "https://www.youtube.com/watch?v=nKSNG0mA1y4", 2, "/downloads/Thrivans/2026-05-27 House Battery to Starter Battery: The Simple Trickle Charge Hack/House Battery to Starter Battery: The Simple Trickle Charge Hack [nKSNG0mA1y4].mkv", false, false, false, 98, ~U[2026-05-27 13:53:00Z], ~U[2026-07-11 16:30:16Z], ~U[2026-07-11 16:30:16Z], "In this video we share how to trickle charge your starter battery from your house system.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "House Battery to Starter Battery: The Simple Trickle Charge Hack", 1, 630, false, "nKSNG0mA1y4", "https://www.youtube.com/watch?v=nKSNG0mA1y4", "/downloads/Thrivans/2026-05-27 House Battery to Starter Battery: The Simple Trickle Charge Hack/House Battery to Starter Battery: The Simple Trickle Charge Hack [nKSNG0mA1y4].mkv", false, ~U[2026-05-27 13:53:00Z]] 12:30:16.994 [debug] QUERY OK source="sources" db=0.2ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:16.994 [debug] QUERY OK source="media_items" db=0.4ms idle=2.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-16 15:18:08Z], 1] 12:30:16.995 [debug] QUERY OK source="media_items" db=0.7ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we share how to set up a Victron Cerbo GX to read tank levels using a tank level sending unit.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical: Connecting Tanks to a Cerbo GX", "28540f34-78b6-4774-a230-3d3038d64ef5", 1, [], 583, false, "rBC21-8JNmM", "https://www.youtube.com/watch?v=rBC21-8JNmM", 3, "/downloads/Thrivans/2026-05-16 Van Electrical: Connecting Tanks to a Cerbo GX/Van Electrical: Connecting Tanks to a Cerbo GX [rBC21-8JNmM].mkv", false, false, false, 98, ~U[2026-05-16 15:18:08Z], ~U[2026-07-11 16:30:16Z], ~U[2026-07-11 16:30:16Z], "In this video we share how to set up a Victron Cerbo GX to read tank levels using a tank level sending unit.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical: Connecting Tanks to a Cerbo GX", 1, 583, false, "rBC21-8JNmM", "https://www.youtube.com/watch?v=rBC21-8JNmM", "/downloads/Thrivans/2026-05-16 Van Electrical: Connecting Tanks to a Cerbo GX/Van Electrical: Connecting Tanks to a Cerbo GX [rBC21-8JNmM].mkv", false, ~U[2026-05-16 15:18:08Z]] 12:30:16.995 [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" = ?) [1] 12:30:16.996 [debug] QUERY OK source="media_items" db=0.4ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-05-10 13:49:24Z], 1] 12:30:16.997 [debug] QUERY OK source="media_items" db=0.9ms idle=2.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we do a deep dive into electrical and plumbing systems for van conversions.\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nDROP-IN ELECTRICAL & PLUMBING SYSTEMS: https://www.thrivecraftedvans.com/drop-in-electrical-system\n\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Camper Van Electrical and Plumbing System Guide", "afae8bc9-c3ca-4c03-b5bd-0020f69b35f0", 1, [], 2050, false, "jBHUjmEHuQM", "https://www.youtube.com/watch?v=jBHUjmEHuQM", 4, "/downloads/Thrivans/2026-05-10 Camper Van Electrical and Plumbing System Guide/Camper Van Electrical and Plumbing System Guide [jBHUjmEHuQM].mkv", false, false, false, 98, ~U[2026-05-10 13:49:24Z], ~U[2026-07-11 16:30:16Z], ~U[2026-07-11 16:30:16Z], "In this video we do a deep dive into electrical and plumbing systems for van conversions.\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nDROP-IN ELECTRICAL & PLUMBING SYSTEMS: https://www.thrivecraftedvans.com/drop-in-electrical-system\n\nTHRIVANS STORE: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Camper Van Electrical and Plumbing System Guide", 1, 2050, false, "jBHUjmEHuQM", "https://www.youtube.com/watch?v=jBHUjmEHuQM", "/downloads/Thrivans/2026-05-10 Camper Van Electrical and Plumbing System Guide/Camper Van Electrical and Plumbing System Guide [jBHUjmEHuQM].mkv", false, ~U[2026-05-10 13:49:24Z]] 12:30:16.998 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:16.998 [debug] QUERY OK source="media_items" db=0.3ms idle=2.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-26 16:21:44Z], 1] 12:30:16.999 [debug] QUERY OK source="media_items" db=0.9ms idle=2.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we unbox and review the Trio Starlink Mini Interior Mount.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\nTrio Starlink Mini Interior Mount: https://www.trioflatmount.com/?sca_ref=10879737.PyFYB73BUvd\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!)", "3a1a4217-e879-4b91-b0a1-3a307cd96cee", 1, [], 823, false, "hGUuE_SLYuA", "https://www.youtube.com/watch?v=hGUuE_SLYuA", 5, "/downloads/Thrivans/2026-04-26 Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!)/Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!) [hGUuE_SLYuA].mkv", false, false, false, 98, ~U[2026-04-26 16:21:44Z], ~U[2026-07-11 16:30:16Z], ~U[2026-07-11 16:30:16Z], "In this video we unbox and review the Trio Starlink Mini Interior Mount.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\nTrio Starlink Mini Interior Mount: https://www.trioflatmount.com/?sca_ref=10879737.PyFYB73BUvd\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!)", 1, 823, false, "hGUuE_SLYuA", "https://www.youtube.com/watch?v=hGUuE_SLYuA", "/downloads/Thrivans/2026-04-26 Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!)/Starlink Mini Inside Your Van? Trio Interior Mount Honest Review (No Roof Holes!) [hGUuE_SLYuA].mkv", false, ~U[2026-04-26 16:21:44Z]] 12:30:17.000 [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" = ?) [1] 12:30:17.000 [debug] QUERY OK source="media_items" db=0.4ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-18 12:00:53Z], 1] 12:30:17.001 [debug] QUERY OK source="media_items" db=0.7ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We compare the Maxxair and AirPlus rooftop fans for your van build. The tried and true stalwart vs the new kid on the block.\nMaxxaire Fan: https://amzn.to/3Y0EJuC\nAirPlus Fan: https://orionvangear.com/?ref=ituvymxb\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Maxxair vs. AirPlus | Don't Buy the Wrong Fan", "699434d6-d258-43d2-b211-d704833d0f42", 1, [], 1222, false, "Tyl37aSGbDg", "https://www.youtube.com/watch?v=Tyl37aSGbDg", 6, "/downloads/Thrivans/2026-04-18 Maxxair vs. AirPlus | Don't Buy the Wrong Fan/Maxxair vs. AirPlus | Don't Buy the Wrong Fan [Tyl37aSGbDg].mkv", false, false, false, 98, ~U[2026-04-18 12:00:53Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "We compare the Maxxair and AirPlus rooftop fans for your van build. The tried and true stalwart vs the new kid on the block.\nMaxxaire Fan: https://amzn.to/3Y0EJuC\nAirPlus Fan: https://orionvangear.com/?ref=ituvymxb\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Maxxair vs. AirPlus | Don't Buy the Wrong Fan", 1, 1222, false, "Tyl37aSGbDg", "https://www.youtube.com/watch?v=Tyl37aSGbDg", "/downloads/Thrivans/2026-04-18 Maxxair vs. AirPlus | Don't Buy the Wrong Fan/Maxxair vs. AirPlus | Don't Buy the Wrong Fan [Tyl37aSGbDg].mkv", false, ~U[2026-04-18 12:00:53Z]] 12:30:17.002 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:17.002 [debug] QUERY OK source="media_items" db=0.3ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-28 14:46:52Z], 1] 12:30:17.003 [debug] QUERY OK source="media_items" db=0.7ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We compare three roof mounts for Starlink Mini.\nOwl Vans Mount: https://owlvans.com/products/starlink-mini-magnetic-mount\nVeritas Vans Mount: https://amzn.to/4uURbu4\nTrio Speedmount: https://www.trioflatmount.com/?sca_ref=10879737.PyFYB73BUvd\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Mount Showdown: Owl vs Trio vs Veritas", "1812521a-1d59-4551-8384-c9ae0b84d958", 1, [], 631, false, "FmhFOTnDHVk", "https://www.youtube.com/watch?v=FmhFOTnDHVk", 7, "/downloads/Thrivans/2026-03-28 Starlink Mini Mount Showdown: Owl vs Trio vs Veritas/Starlink Mini Mount Showdown: Owl vs Trio vs Veritas [FmhFOTnDHVk].mkv", false, false, false, 98, ~U[2026-03-28 14:46:52Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "We compare three roof mounts for Starlink Mini.\nOwl Vans Mount: https://owlvans.com/products/starlink-mini-magnetic-mount\nVeritas Vans Mount: https://amzn.to/4uURbu4\nTrio Speedmount: https://www.trioflatmount.com/?sca_ref=10879737.PyFYB73BUvd\n\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Mount Showdown: Owl vs Trio vs Veritas", 1, 631, false, "FmhFOTnDHVk", "https://www.youtube.com/watch?v=FmhFOTnDHVk", "/downloads/Thrivans/2026-03-28 Starlink Mini Mount Showdown: Owl vs Trio vs Veritas/Starlink Mini Mount Showdown: Owl vs Trio vs Veritas [FmhFOTnDHVk].mkv", false, ~U[2026-03-28 14:46:52Z]] 12:30:17.003 [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" = ?) [1] 12:30:17.004 [debug] QUERY OK source="media_items" db=0.3ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-21 16:14:31Z], 1] 12:30:17.005 [debug] QUERY OK source="media_items" db=0.9ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Starlink is a game changer for vanlife. In this video we discuss different options.\n*************************************************************************************************\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n*************************************************************************************************\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Electrical Setup- Don't Make This Mistake", "6e668a97-822b-4eba-bc28-540b5ee8e8f9", 1, [], 853, false, "0zcdpvk6GUg", "https://www.youtube.com/watch?v=0zcdpvk6GUg", 8, "/downloads/Thrivans/2026-03-21 Starlink Mini Electrical Setup- Don't Make This Mistake/Starlink Mini Electrical Setup- Don't Make This Mistake [0zcdpvk6GUg].mkv", false, false, false, 98, ~U[2026-03-21 16:14:31Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "Starlink is a game changer for vanlife. In this video we discuss different options.\n*************************************************************************************************\nSTARLINK (Receive 1 FREE month of service with our referral link): https://tinyurl.com/22tvrnob\n*************************************************************************************************\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Starlink Mini Electrical Setup- Don't Make This Mistake", 1, 853, false, "0zcdpvk6GUg", "https://www.youtube.com/watch?v=0zcdpvk6GUg", "/downloads/Thrivans/2026-03-21 Starlink Mini Electrical Setup- Don't Make This Mistake/Starlink Mini Electrical Setup- Don't Make This Mistake [0zcdpvk6GUg].mkv", false, ~U[2026-03-21 16:14:31Z]] 12:30:17.006 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:17.006 [debug] QUERY OK source="media_items" db=0.3ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-08 15:55:12Z], 1] 12:30:17.007 [debug] QUERY OK source="media_items" db=0.7ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Rugged Meets Refined | Luxury Sprinter 170 Van Tour", "d5a2be2e-8a87-48a3-98ae-63984c8b13c9", 1, [], 1051, false, "6wPAryyq1fc", "https://www.youtube.com/watch?v=6wPAryyq1fc", 9, "/downloads/Thrivans/2026-02-08 Rugged Meets Refined | Luxury Sprinter 170 Van Tour/Rugged Meets Refined | Luxury Sprinter 170 Van Tour [6wPAryyq1fc].mkv", false, false, false, 98, ~U[2026-02-08 15:55:12Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Rugged Meets Refined | Luxury Sprinter 170 Van Tour", 1, 1051, false, "6wPAryyq1fc", "https://www.youtube.com/watch?v=6wPAryyq1fc", "/downloads/Thrivans/2026-02-08 Rugged Meets Refined | Luxury Sprinter 170 Van Tour/Rugged Meets Refined | Luxury Sprinter 170 Van Tour [6wPAryyq1fc].mkv", false, ~U[2026-02-08 15:55:12Z]] 12:30:17.008 [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" = ?) [1] 12:30:17.008 [debug] QUERY OK source="media_items" db=0.4ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-01 13:30:34Z], 1] 12:30:17.009 [debug] QUERY OK source="media_items" db=0.7ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Best practices for alternator charing, whether you use the factory or a secondary alternator.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Alternator Charging: Pro Tips", "aa2e3539-b3c5-403a-b10d-26f57e2e4b8d", 1, [], 911, false, "P1vEaDCe2-I", "https://www.youtube.com/watch?v=P1vEaDCe2-I", 10, "/downloads/Thrivans/2026-02-01 Van Alternator Charging: Pro Tips/Van Alternator Charging: Pro Tips [P1vEaDCe2-I].mkv", false, false, false, 98, ~U[2026-02-01 13:30:34Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "Best practices for alternator charing, whether you use the factory or a secondary alternator.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Alternator Charging: Pro Tips", 1, 911, false, "P1vEaDCe2-I", "https://www.youtube.com/watch?v=P1vEaDCe2-I", "/downloads/Thrivans/2026-02-01 Van Alternator Charging: Pro Tips/Van Alternator Charging: Pro Tips [P1vEaDCe2-I].mkv", false, ~U[2026-02-01 13:30:34Z]] 12:30:17.010 [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" = ?) [1] 12:30:17.010 [debug] QUERY OK source="media_items" db=0.3ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-25 13:30:01Z], 1] 12:30:17.013 [debug] QUERY OK source="media_items" db=2.7ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "8020 Cabinetry- Hinges, Slides & Latches", "e87ab471-03e1-4d8f-82b4-6e8c4a8aad95", 1, [], 1355, false, "0j388SwvG84", "https://www.youtube.com/watch?v=0j388SwvG84", 11, "/downloads/Thrivans/2026-01-25 8020 Cabinetry- Hinges, Slides & Latches/8020 Cabinetry- Hinges, Slides & Latches [0j388SwvG84].mkv", false, false, false, 98, ~U[2026-01-25 13:30:01Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "8020 Cabinetry- Hinges, Slides & Latches", 1, 1355, false, "0j388SwvG84", "https://www.youtube.com/watch?v=0j388SwvG84", "/downloads/Thrivans/2026-01-25 8020 Cabinetry- Hinges, Slides & Latches/8020 Cabinetry- Hinges, Slides & Latches [0j388SwvG84].mkv", false, ~U[2026-01-25 13:30:01Z]] 12:30:17.013 [debug] QUERY OK source="sources" db=0.2ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:17.014 [debug] QUERY OK source="media_items" db=0.3ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-18 14:00:18Z], 1] 12:30:17.015 [debug] QUERY OK source="media_items" db=0.7ms idle=4.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical & Plumbing Setup. Updated for 2026.", "e1a9079f-09e0-4b11-9b2c-73c2500f334e", 1, [], 1207, false, "CpqIkR4Ep1s", "https://www.youtube.com/watch?v=CpqIkR4Ep1s", 12, "/downloads/Thrivans/2026-01-18 Van Electrical & Plumbing Setup. Updated for 2026#/Van Electrical & Plumbing Setup. Updated for 2026. [CpqIkR4Ep1s].mkv", false, false, false, 98, ~U[2026-01-18 14:00:18Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "DIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nVAN FLOOR PLANS: https://www.thrivecraftedvans.com/store/floor-plans\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Electrical & Plumbing Setup. Updated for 2026.", 1, 1207, false, "CpqIkR4Ep1s", "https://www.youtube.com/watch?v=CpqIkR4Ep1s", "/downloads/Thrivans/2026-01-18 Van Electrical & Plumbing Setup. Updated for 2026#/Van Electrical & Plumbing Setup. Updated for 2026. [CpqIkR4Ep1s].mkv", false, ~U[2026-01-18 14:00:18Z]] 12:30:17.015 [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" = ?) [1] 12:30:17.016 [debug] QUERY OK source="media_items" db=0.4ms idle=2.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-12 20:21:28Z], 1] 12:30:17.017 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Van Tour video of our favorite layout: The Moab\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nEPOCH BATTERIES: https://www.thrivecraftedvans.com/store/epoch-batteries\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nMOAB LAYOUT PLANS: https://www.thrivecraftedvans.com/store/p/moab-floor-plan-y5rsz\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Builder Shares Most Popular Layout", "dae9a0a2-fb73-4e73-a04a-19aa217d292f", 1, [], 1190, false, "oP1_salDOSs", "https://www.youtube.com/watch?v=oP1_salDOSs", 13, "/downloads/Thrivans/2025-12-12 Van Builder Shares Most Popular Layout/Van Builder Shares Most Popular Layout [oP1_salDOSs].mkv", false, false, false, 98, ~U[2025-12-12 20:21:28Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "Van Tour video of our favorite layout: The Moab\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nEPOCH BATTERIES: https://www.thrivecraftedvans.com/store/epoch-batteries\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nMOAB LAYOUT PLANS: https://www.thrivecraftedvans.com/store/p/moab-floor-plan-y5rsz\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Van Builder Shares Most Popular Layout", 1, 1190, false, "oP1_salDOSs", "https://www.youtube.com/watch?v=oP1_salDOSs", "/downloads/Thrivans/2025-12-12 Van Builder Shares Most Popular Layout/Van Builder Shares Most Popular Layout [oP1_salDOSs].mkv", false, ~U[2025-12-12 20:21:28Z]] 12:30:17.017 [debug] QUERY OK source="sources" db=0.2ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:17.018 [debug] QUERY OK source="media_items" db=0.3ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-26 21:09:55Z], 1] 12:30:17.019 [debug] QUERY OK source="media_items" db=0.8ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We share our top 3 ways to attach panels to extruded aluminum AKA 8020 cabinets.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips", "e1dfe5b1-0f1f-463f-9c80-57005595dbdb", 1, [], 734, false, "v6Pp9X89VWM", "https://www.youtube.com/watch?v=v6Pp9X89VWM", 14, "/downloads/Thrivans/2025-11-26 Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips/Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips [v6Pp9X89VWM].mkv", false, false, false, 98, ~U[2025-11-26 21:09:55Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "We share our top 3 ways to attach panels to extruded aluminum AKA 8020 cabinets.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips", 1, 734, false, "v6Pp9X89VWM", "https://www.youtube.com/watch?v=v6Pp9X89VWM", "/downloads/Thrivans/2025-11-26 Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips/Top 3 Ways to Attach Panels to 8020 Cabinets- Pro Tips [v6Pp9X89VWM].mkv", false, ~U[2025-11-26 21:09:55Z]] 12:30:17.020 [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" = ?) [1] 12:30:17.020 [debug] QUERY OK source="media_items" db=0.3ms idle=2.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-16 13:00:35Z], 1] 12:30:17.021 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We discuss exterior lighting for your camper van.\nLINKS TO PRODUCTS MENTIONED IN THIS VIDEO, PLUS OTHER PRODUCTS WE USE OUR BUILDS: \nhttps://tinyurl.com/3r4ns3h3\n\nCHECK OUT OUR STORE FOR DIY VAN BUILDER RESOURCES:\nhttps://www.thrivecraftedvans.com/store\n\nVAN BUILD SEQUENCE DOC: \nhttps://tinyurl.com/3ry8vne7\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "What's the Best Exterior Lighting for Your Van Conversion?", "2ed2d6ec-c5e3-4320-8b4c-90ec0ce7a24e", 1, [], 545, false, "GPQXdQUUdNc", "https://www.youtube.com/watch?v=GPQXdQUUdNc", 15, "/downloads/Thrivans/2025-11-16 What's the Best Exterior Lighting for Your Van Conversion?/What's the Best Exterior Lighting for Your Van Conversion? [GPQXdQUUdNc].mkv", false, false, false, 98, ~U[2025-11-16 13:00:35Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "We discuss exterior lighting for your camper van.\nLINKS TO PRODUCTS MENTIONED IN THIS VIDEO, PLUS OTHER PRODUCTS WE USE OUR BUILDS: \nhttps://tinyurl.com/3r4ns3h3\n\nCHECK OUT OUR STORE FOR DIY VAN BUILDER RESOURCES:\nhttps://www.thrivecraftedvans.com/store\n\nVAN BUILD SEQUENCE DOC: \nhttps://tinyurl.com/3ry8vne7\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "What's the Best Exterior Lighting for Your Van Conversion?", 1, 545, false, "GPQXdQUUdNc", "https://www.youtube.com/watch?v=GPQXdQUUdNc", "/downloads/Thrivans/2025-11-16 What's the Best Exterior Lighting for Your Van Conversion?/What's the Best Exterior Lighting for Your Van Conversion? [GPQXdQUUdNc].mkv", false, ~U[2025-11-16 13:00:35Z]] 12:30:17.022 [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" = ?) [1] 12:30:17.022 [debug] QUERY OK source="media_items" db=0.3ms idle=2.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-02 13:01:40Z], 1] 12:30:17.023 [debug] QUERY OK source="media_items" db=0.7ms idle=2.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Pro van build explains pros and cons of 12 volt vs 24 volt vs 48 volt electrical systems.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nDIY VAN BUILD PRODUCTS & RESOURCES: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Which Voltage Should You Choose for Your Van Build?", "3c4f9f67-f3d5-4bd8-a0a8-d1af838a52c8", 1, [], 1455, false, "psrAMjio430", "https://www.youtube.com/watch?v=psrAMjio430", 16, "/downloads/Thrivans/2025-11-02 Which Voltage Should You Choose for Your Van Build?/Which Voltage Should You Choose for Your Van Build? [psrAMjio430].mkv", false, false, false, 98, ~U[2025-11-02 13:01:40Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "Pro van build explains pros and cons of 12 volt vs 24 volt vs 48 volt electrical systems.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nDIY VAN BUILD PRODUCTS & RESOURCES: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Which Voltage Should You Choose for Your Van Build?", 1, 1455, false, "psrAMjio430", "https://www.youtube.com/watch?v=psrAMjio430", "/downloads/Thrivans/2025-11-02 Which Voltage Should You Choose for Your Van Build?/Which Voltage Should You Choose for Your Van Build? [psrAMjio430].mkv", false, ~U[2025-11-02 13:01:40Z]] 12:30:17.024 [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" = ?) [1] 12:30:17.024 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-25 19:33:27Z], 1] 12:30:17.026 [debug] QUERY OK source="media_items" db=1.7ms idle=2.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How the sPod makes wiring exterior lights and accessories super easy.\nsPod BantamX: https://amzn.to/4nnwIJl\nS8 50\" Light Bar: https://amzn.to/4hsuffa\nS2 Sport Pod Lights: https://amzn.to/478VB6J\nLP6 Fog Lights: https://amzn.to/43tspFa\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Easy Way to Control All Your Exterior Lighting!", "cff71448-5851-473c-9d12-a8a0effe527b", 1, [], 432, false, "t2I_QvoofKg", "https://www.youtube.com/watch?v=t2I_QvoofKg", 17, "/downloads/Thrivans/2025-10-25 Easy Way to Control All Your Exterior Lighting!/Easy Way to Control All Your Exterior Lighting! [t2I_QvoofKg].mkv", false, false, false, 98, ~U[2025-10-25 19:33:27Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "How the sPod makes wiring exterior lights and accessories super easy.\nsPod BantamX: https://amzn.to/4nnwIJl\nS8 50\" Light Bar: https://amzn.to/4hsuffa\nS2 Sport Pod Lights: https://amzn.to/478VB6J\nLP6 Fog Lights: https://amzn.to/43tspFa\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Easy Way to Control All Your Exterior Lighting!", 1, 432, false, "t2I_QvoofKg", "https://www.youtube.com/watch?v=t2I_QvoofKg", "/downloads/Thrivans/2025-10-25 Easy Way to Control All Your Exterior Lighting!/Easy Way to Control All Your Exterior Lighting! [t2I_QvoofKg].mkv", false, ~U[2025-10-25 19:33:27Z]] 12:30:17.027 [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" = ?) [1] 12:30:17.027 [debug] QUERY OK source="media_items" db=0.3ms idle=3.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-12 14:03:35Z], 1] 12:30:17.028 [debug] QUERY OK source="media_items" db=0.7ms idle=3.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Tips and tricks for building camper van cabinetry using extruded aluminum (AKA 8020).\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020", "1b9d081c-f584-4096-b44b-fc99694e372c", 1, [], 1563, false, "bzRIZwTsdKQ", "https://www.youtube.com/watch?v=bzRIZwTsdKQ", 18, "/downloads/Thrivans/2025-10-12 Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020/Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020 [bzRIZwTsdKQ].mkv", false, false, false, 98, ~U[2025-10-12 14:03:35Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "Tips and tricks for building camper van cabinetry using extruded aluminum (AKA 8020).\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020", 1, 1563, false, "bzRIZwTsdKQ", "https://www.youtube.com/watch?v=bzRIZwTsdKQ", "/downloads/Thrivans/2025-10-12 Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020/Pro Van Builder Shares Tips and Tricks for Building Van Cabinetry with 8020 [bzRIZwTsdKQ].mkv", false, ~U[2025-10-12 14:03:35Z]] 12:30:17.030 [debug] QUERY OK source="sources" db=1.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" = ?) [1] 12:30:17.030 [debug] QUERY OK source="media_items" db=0.3ms idle=3.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-05 17:32:46Z], 1] 12:30:17.031 [debug] QUERY OK source="media_items" db=0.8ms idle=3.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Overview of extruded aluminum cabinetry in a camper van.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nMOAB LAYOUT PLANS: https://www.thrivecraftedvans.com/store/p/moab-floor-plan-y5rsz\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Is Extruded Aluminum the Best Material for Van Building?", "5c2329d9-93f1-4df0-91d8-c6609436d5b8", 1, [], 1132, false, "SCSJsWFelAk", "https://www.youtube.com/watch?v=SCSJsWFelAk", 19, "/downloads/Thrivans/2025-10-05 Is Extruded Aluminum the Best Material for Van Building?/Is Extruded Aluminum the Best Material for Van Building? [SCSJsWFelAk].mkv", false, false, false, 98, ~U[2025-10-05 17:32:46Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "Overview of extruded aluminum cabinetry in a camper van.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nEXTRUDED ALUMINUM CABINET PLANS: https://www.thrivecraftedvans.com/store/cabinet-plans\nMOAB LAYOUT PLANS: https://www.thrivecraftedvans.com/store/p/moab-floor-plan-y5rsz\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Is Extruded Aluminum the Best Material for Van Building?", 1, 1132, false, "SCSJsWFelAk", "https://www.youtube.com/watch?v=SCSJsWFelAk", "/downloads/Thrivans/2025-10-05 Is Extruded Aluminum the Best Material for Van Building?/Is Extruded Aluminum the Best Material for Van Building? [SCSJsWFelAk].mkv", false, ~U[2025-10-05 17:32:46Z]] 12:30:17.032 [debug] QUERY OK source="sources" db=0.1ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:30:17.032 [debug] QUERY OK source="media_items" db=0.3ms idle=3.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-20 13:35:29Z], 1] 12:30:17.034 [debug] QUERY OK source="media_items" db=0.9ms idle=2.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","source_id","subtitle_filepaths","duration_seconds","livestream","media_id","original_url","playlist_index","predicted_media_filepath","prevent_culling","prevent_download","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "media_id" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video we take a look at the Cloud Cap pop top from Super Pacific.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nSUPER PACIFIC CLOUD CAP: https://superpacificusa.com/pages/cloud-cap\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Maximize Your Van Space for Sleeping!", "7cb6a99f-f406-4d6c-9cf8-69742baca611", 1, [], 681, false, "mMB_HIQr8M0", "https://www.youtube.com/watch?v=mMB_HIQr8M0", 20, "/downloads/Thrivans/2025-09-20 Maximize Your Van Space for Sleeping!/Maximize Your Van Space for Sleeping! [mMB_HIQr8M0].mkv", false, false, false, 98, ~U[2025-09-20 13:35:29Z], ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], "In this video we take a look at the Cloud Cap pop top from Super Pacific.\nDIY VAN MATERIALS LIST: https://tinyurl.com/3r4ns3h3\nVAN BUILD SEQUENCE DOC: https://tinyurl.com/3ry8vne7\nCABINET SPACERS: https://www.thrivecraftedvans.com/store\nSUPER PACIFIC CLOUD CAP: https://superpacificusa.com/pages/cloud-cap\n\nLooking for a builder to help create your dream van? https://www.thrivecraftedvans.com\n\nDROP-IN ELECTRICAL AND PLUMBING SYSTEMS\nhttps://www.thrivecraftedvans.com/drop-in-electrical-system\n\nOTHER PRODUCTS WE LOVE:\nThe best freeze dried food on the planet: https://shop.wiseharvestfreezedriedfoods.com/lisawarnick\nWe are now a dealer for Epoch Batteries: https://www.thrivecraftedvans.com/store\n\n➳ CONNECT WITH US:\nInstagram: @thrivans\nCollaboration: lisa@thrivecraftedvans.com\n\n➳ WHO WE ARE\nWe’re Lisa & Jeff, the founders of Thrivans! During Covid, we built our first van and fell in love with the creative process of designing and building. Now, our team at Thrivans crafts the highest quality, luxury campervans for adventurers like you!\n\n#vanlife #vanconversion #vanbuild #freezedried\n\nDisclosures: All opinions are my own. Sponsors are acknowledged. Some links in the description are affiliate links that if you click on one of the product links, I’ll receive a commission at no additional cost to you. As an Amazon Associate we earn a small commission from qualifying purchases.", "Maximize Your Van Space for Sleeping!", 1, 681, false, "mMB_HIQr8M0", "https://www.youtube.com/watch?v=mMB_HIQr8M0", "/downloads/Thrivans/2025-09-20 Maximize Your Van Space for Sleeping!/Maximize Your Van Space for Sleeping! [mMB_HIQr8M0].mkv", false, ~U[2025-09-20 13:35:29Z]] 12:30:17.034 [debug] QUERY OK source="sources" db=0.2ms idle=3.4ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z], 1] 12:30:17.034 [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 ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 12:30:17.035 [debug] QUERY OK source="media_items" db=0.2ms idle=2.9ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 12:30:17.035 [debug] QUERY OK source="media_items" db=0.1ms idle=2.8ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 12:30:17.036 [debug] QUERY OK source="tasks" db=0.1ms idle=1.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [14818, 1, ~U[2026-07-11 16:30:17Z], ~U[2026-07-11 16:30:17Z]] 12:30:17.036 [info] {"args":{"id":1},"id":14786,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":128176835,"event":"job:stop","queue_time":186647,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 12:30:30.693 [info] {"source":"oban","duration":613,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:31:00.312 [info] {"source":"oban","duration":135,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:31:00.693 [info] {"source":"oban","duration":572,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:31:22.459 [info] GET / 12:31:22.459 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 12:31:22.460 [debug] QUERY OK source="settings" db=0.1ms idle=1905.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_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:22.460 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1905.6ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 12:31:22.460 [debug] QUERY OK source="sources" db=0.0ms idle=1905.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 12:31:22.469 [debug] QUERY OK source="media_items" db=8.9ms idle=1391.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:31:22.470 [debug] QUERY OK source="media_items" db=0.9ms idle=399.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 12:31:22.470 [debug] QUERY OK source="settings" db=0.0ms idle=10.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:31:22.470 [debug] QUERY OK source="settings" db=0.0ms idle=10.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:31:22.471 [debug] QUERY OK source="settings" db=0.0ms idle=10.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:31:22.471 [debug] QUERY OK source="tasks" db=0.1ms 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"] 12:31:22.472 [debug] QUERY OK source="media_items" db=0.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 (NOT (m0."media_filepath" IS NULL)) [] 12:31:22.473 [debug] QUERY OK source="media_items" db=0.3ms idle=2.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER 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:31:22.473 [debug] QUERY OK source="sources" db=0.1ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?,?,?)) [1, 5, 16, 41] 12:31:22.485 [debug] QUERY OK source="media_items" db=10.0ms 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 (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:31:22.485 [debug] QUERY OK source="media_items" db=0.5ms idle=13.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:31:22.486 [debug] QUERY OK source="sources" db=0.1ms 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" IN (?,?,?)) [42, 18, 16] 12:31:22.487 [info] Sent 200 in 27ms 12:31:30.695 [info] {"source":"oban","duration":592,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:32:00.313 [info] {"source":"oban","duration":136,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:32:00.696 [info] {"source":"oban","duration":556,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:32:30.697 [info] {"source":"oban","duration":659,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:33:00.314 [info] {"source":"oban","duration":313,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:33:00.697 [info] {"source":"oban","duration":535,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:33:30.699 [info] {"source":"oban","duration":616,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:34:00.315 [info] {"source":"oban","duration":141,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:34:00.700 [info] {"source":"oban","duration":580,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:34:30.701 [info] {"source":"oban","duration":751,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:35:00.316 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:35:00.702 [info] {"source":"oban","duration":576,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:35:30.703 [info] {"source":"oban","duration":1046,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:36:00.317 [info] {"source":"oban","duration":138,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:36:00.705 [info] {"source":"oban","duration":691,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:36:30.706 [info] {"source":"oban","duration":596,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:37:00.318 [info] {"source":"oban","duration":185,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:37:00.707 [info] {"source":"oban","duration":585,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:37:30.708 [info] {"source":"oban","duration":552,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:37:49.256 [info] GET /sources/30/edit 12:37:49.256 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "30"} Pipelines: [:browser] 12:37:49.256 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 12:37:49.256 [debug] QUERY OK source="media_profiles" db=0.1ms idle=702.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:37:49.257 [debug] QUERY OK source="settings" db=0.0ms idle=702.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:49.257 [debug] QUERY OK source="settings" db=0.1ms idle=702.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:49.257 [debug] QUERY OK source="settings" db=0.0ms idle=703.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:49.259 [info] Sent 200 in 3ms 12:37:49.756 [info] GET /sources/41/edit 12:37:49.756 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "41"} Pipelines: [:browser] 12:37:49.756 [debug] QUERY OK source="sources" db=0.1ms idle=499.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:37:49.757 [debug] QUERY OK source="media_profiles" db=0.1ms idle=499.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:37:49.757 [debug] QUERY OK source="settings" db=0.0ms idle=499.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:49.757 [debug] QUERY OK source="settings" db=0.0ms idle=499.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:49.757 [debug] QUERY OK source="settings" db=0.0ms idle=250.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:49.759 [info] Sent 200 in 3ms 12:37:50.317 [info] GET /sources/26 12:37:50.317 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "26"} Pipelines: [:browser] 12:37:50.318 [debug] QUERY OK source="sources" db=0.1ms idle=561.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 12:37:50.318 [debug] QUERY OK source="media_profiles" db=0.1ms idle=561.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:37:50.319 [debug] QUERY OK source="tasks" db=0.4ms idle=561.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [26, "executing", "available", "scheduled", "retryable"] 12:37:50.319 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=561.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" = ?) [14798] 12:37:50.319 [debug] QUERY OK source="settings" db=0.0ms idle=561.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:50.319 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:50.319 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:50.320 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 12:37:50.321 [debug] QUERY OK source="media_items" db=0.2ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [26] 12:37:50.321 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [26, 10, 0] 12:37:50.322 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 12:37:50.322 [debug] QUERY OK source="media_items" db=0.0ms idle=2.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [26] 12:37:50.322 [debug] QUERY OK source="media_items" db=0.1ms idle=1.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 ? [26, 10, 0] 12:37:50.323 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 12:37:50.323 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [26] 12:37:50.323 [debug] QUERY OK source="media_items" db=0.3ms idle=1.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 ? [26, 10, 0] 12:37:50.324 [info] Sent 200 in 6ms 12:37:50.756 [info] GET /sources/32/edit 12:37:50.756 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "32"} Pipelines: [:browser] 12:37:50.756 [debug] QUERY OK source="sources" db=0.1ms idle=433.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 12:37:50.756 [debug] QUERY OK source="media_profiles" db=0.1ms idle=433.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:37:50.757 [debug] QUERY OK source="settings" db=0.1ms idle=433.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:50.757 [debug] QUERY OK source="settings" db=0.0ms idle=433.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:50.757 [debug] QUERY OK source="settings" db=0.0ms idle=249.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:50.759 [info] Sent 200 in 3ms 12:37:51.256 [info] GET /sources/27 12:37:51.256 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "27"} Pipelines: [:browser] 12:37:51.256 [debug] QUERY OK source="sources" db=0.1ms idle=499.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [27] 12:37:51.256 [debug] QUERY OK source="media_profiles" db=0.1ms idle=499.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:37:51.257 [debug] QUERY OK source="tasks" db=0.1ms idle=499.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 (?,?,?,?)) [27, "executing", "available", "scheduled", "retryable"] 12:37:51.257 [debug] QUERY OK source="settings" db=0.0ms idle=499.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:51.257 [debug] QUERY OK source="settings" db=0.0ms idle=499.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:51.257 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:51.258 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [27] 12:37:51.259 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [27] 12:37:51.259 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [27, 10, 0] 12:37:51.259 [debug] QUERY OK source="sources" db=0.0ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [27] 12:37:51.260 [debug] QUERY OK source="media_items" db=0.0ms idle=2.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [27] 12:37:51.260 [debug] QUERY OK source="media_items" db=0.2ms idle=1.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [27, 10, 0] 12:37:51.261 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [27] 12:37:51.261 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [27] 12:37:51.262 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [27, 10, 0] 12:37:51.262 [info] Sent 200 in 6ms 12:37:51.757 [info] GET /sources/23 12:37:51.757 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "23"} Pipelines: [:browser] 12:37:51.758 [debug] QUERY OK source="sources" db=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 12:37:51.758 [debug] QUERY OK source="media_profiles" db=0.1ms idle=496.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:37:51.760 [debug] QUERY OK source="tasks" db=1.7ms idle=496.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 (?,?,?,?)) [23, "executing", "available", "scheduled", "retryable"] 12:37:51.760 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=498.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" = ?) [14800] 12:37:51.760 [debug] QUERY OK source="settings" db=0.1ms idle=251.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:51.760 [debug] QUERY OK source="settings" db=0.0ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:51.761 [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:37:51.762 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 12:37:51.762 [debug] QUERY OK source="media_items" db=0.2ms idle=1.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")))) [23] 12:37:51.763 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [23, 10, 0] 12:37:51.763 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 12:37:51.763 [debug] QUERY OK source="media_items" db=0.0ms idle=2.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [23] 12:37:51.763 [debug] QUERY OK source="media_items" db=0.1ms idle=1.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 ? [23, 10, 0] 12:37:51.764 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 12:37:51.764 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [23] 12:37:51.765 [debug] QUERY OK source="media_items" db=0.3ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [23, 10, 0] 12:37:51.765 [info] Sent 200 in 8ms 12:37:52.258 [info] GET /sources/30 12:37:52.258 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "30"} Pipelines: [:browser] 12:37:52.258 [debug] QUERY OK source="sources" db=0.1ms idle=494.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 12:37:52.259 [debug] QUERY OK source="media_profiles" db=0.1ms idle=495.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:37:52.259 [debug] QUERY OK source="tasks" db=0.1ms idle=494.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 (?,?,?,?)) [30, "executing", "available", "scheduled", "retryable"] 12:37:52.259 [debug] QUERY OK source="settings" db=0.0ms idle=494.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:52.259 [debug] QUERY OK source="settings" db=0.0ms idle=494.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:52.260 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:52.260 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 12:37:52.261 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [30] 12:37:52.261 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [30, 10, 0] 12:37:52.262 [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" = ?) [30] 12:37:52.262 [debug] QUERY OK source="media_items" db=0.0ms idle=2.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [30] 12:37:52.262 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [30, 10, 0] 12:37:52.263 [debug] QUERY OK source="sources" db=0.1ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [30] 12:37:52.263 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [30] 12:37:52.264 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [30, 10, 0] 12:37:52.264 [info] Sent 200 in 6ms 12:37:52.559 [info] GET /sources/32 12:37:52.559 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "32"} Pipelines: [:browser] 12:37:52.559 [debug] QUERY OK source="sources" db=0.2ms idle=296.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 12:37:52.560 [debug] QUERY OK source="media_profiles" db=0.1ms idle=296.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:37:52.560 [debug] QUERY OK source="tasks" db=0.2ms idle=296.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 (?,?,?,?)) [32, "executing", "available", "scheduled", "retryable"] 12:37:52.560 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=296.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" = ?) [14802] 12:37:52.561 [debug] QUERY OK source="settings" db=0.1ms idle=51.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:52.561 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:52.561 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:52.562 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 12:37:52.563 [debug] QUERY OK source="media_items" db=0.2ms idle=2.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")))) [32] 12:37:52.563 [debug] QUERY OK source="media_items" db=0.3ms idle=2.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 ? [32, 10, 0] 12:37:52.564 [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" = ?) [32] 12:37:52.564 [debug] QUERY OK source="media_items" db=0.0ms idle=2.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [32] 12:37:52.564 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [32, 10, 0] 12:37:52.565 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [32] 12:37:52.565 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [32] 12:37:52.566 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [32, 10, 0] 12:37:52.566 [info] Sent 200 in 7ms 12:37:52.860 [info] GET /sources/39 12:37:52.860 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "39"} Pipelines: [:browser] 12:37:52.861 [debug] QUERY OK source="sources" db=0.1ms idle=296.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [39] 12:37:52.861 [debug] QUERY OK source="media_profiles" db=0.1ms idle=296.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:37:52.861 [debug] QUERY OK source="tasks" db=0.2ms idle=296.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 (?,?,?,?)) [39, "executing", "available", "scheduled", "retryable"] 12:37:52.861 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=296.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" = ?) [14814] 12:37:52.862 [debug] QUERY OK source="settings" db=0.0ms idle=295.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:52.862 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:52.862 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:52.863 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [39] 12:37:52.863 [debug] QUERY OK source="media_items" db=0.2ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [39] 12:37:52.864 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [39, 10, 0] 12:37:52.864 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [39] 12:37:52.864 [debug] QUERY OK source="media_items" db=0.0ms idle=2.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [39] 12:37:52.865 [debug] QUERY OK source="media_items" db=0.3ms idle=1.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [39, 10, 0] 12:37:52.866 [debug] QUERY OK source="sources" db=0.1ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [39] 12:37:52.866 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [39] 12:37:52.866 [debug] QUERY OK source="media_items" db=0.4ms idle=1.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [39, 10, 0] 12:37:52.867 [info] Sent 200 in 7ms 12:37:53.161 [info] GET /sources/39/edit 12:37:53.161 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "39"} Pipelines: [:browser] 12:37:53.162 [debug] QUERY OK source="sources" db=0.1ms idle=296.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [39] 12:37:53.162 [debug] QUERY OK source="media_profiles" db=0.0ms idle=296.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:37:53.162 [debug] QUERY OK source="settings" db=0.0ms idle=296.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:53.162 [debug] QUERY OK source="settings" db=0.0ms idle=296.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:53.163 [debug] QUERY OK source="settings" db=0.0ms idle=296.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:37:53.165 [info] Sent 200 in 3ms 12:38:00.319 [info] {"source":"oban","duration":149,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:38:00.709 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:38:25.131 [info] GET /sources/41/sync_files_on_disk 12:38:25.131 [debug] QUERY OK source="settings" db=0.1ms idle=584.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:25.132 [debug] QUERY OK source="settings" db=0.0ms idle=577.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:25.132 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:38:25.132 [error] #PID<0.190228.0> running PinchflatWeb.Endpoint (connection #PID<0.190227.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/41/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/41/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/sync_files_on_disk", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190228.0>, params: %{}, path_info: ["sources", "41", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/41/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJphgAjDlGhGwAVjQB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/sync_files_on_disk", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/41/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/sync_files_on_disk", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190228.0>, params: %{}, path_info: ["sources", "41", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/41/sync_files_on_disk", resp_body: nil, resp_cookie (truncated) 12:38:25.371 [info] GET /sources/41/force_redownload 12:38:25.371 [debug] QUERY OK source="settings" db=0.1ms idle=816.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:25.371 [debug] QUERY OK source="settings" db=0.0ms idle=817.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:25.371 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:38:25.372 [error] #PID<0.190229.0> running PinchflatWeb.Endpoint (connection #PID<0.190227.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/41/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/41/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_redownload", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190229.0>, params: %{}, path_info: ["sources", "41", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/41/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJpiZIxdiELkcAQQUC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_redownload", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/41/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_redownload", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190229.0>, params: %{}, path_info: ["sources", "41", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/41/force_redownload", resp_body: nil, resp_cookies: %{}, re (truncated) 12:38:25.667 [info] GET /sources/42/force_index 12:38:25.668 [debug] QUERY OK source="settings" db=0.1ms idle=535.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:25.668 [debug] QUERY OK source="settings" db=0.0ms idle=536.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:25.668 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:38:25.668 [error] #PID<0.190230.0> running PinchflatWeb.Endpoint (connection #PID<0.190227.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/42/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/42/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_index", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190230.0>, params: %{}, path_info: ["sources", "42", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/42/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJpjfzfNlOvdwAQQWC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_index", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/42/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_index", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190230.0>, params: %{}, path_info: ["sources", "42", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/42/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-a (truncated) 12:38:25.970 [info] GET /sources/41/force_index 12:38:25.970 [debug] QUERY OK source="settings" db=0.1ms idle=598.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:25.970 [debug] QUERY OK source="settings" db=0.1ms idle=598.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:25.970 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:38:25.971 [error] #PID<0.190231.0> running PinchflatWeb.Endpoint (connection #PID<0.190227.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/41/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/41/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_index", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190231.0>, params: %{}, path_info: ["sources", "41", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/41/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJpkn9rRtqlSQAQQYC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_index", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/41/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_index", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190231.0>, params: %{}, path_info: ["sources", "41", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/41/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-a (truncated) 12:38:26.267 [info] GET /sources/42/force_metadata_refresh 12:38:26.268 [debug] QUERY OK source="settings" db=0.1ms idle=720.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:26.268 [debug] QUERY OK source="settings" db=0.0ms idle=600.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:26.268 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:38:26.268 [error] #PID<0.190232.0> running PinchflatWeb.Endpoint (connection #PID<0.190227.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/42/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/42/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_metadata_refresh", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190232.0>, params: %{}, path_info: ["sources", "42", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/42/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJplu64mjmDEIAQQaC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_metadata_refresh", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/42/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_metadata_refresh", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190232.0>, params: %{}, path_info: ["sources", "42", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/42/force_metadata_refresh", (truncated) 12:38:26.569 [info] GET /sources/41/force_metadata_refresh 12:38:26.569 [debug] QUERY OK source="settings" db=0.1ms idle=599.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:26.570 [debug] QUERY OK source="settings" db=0.0ms idle=599.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:26.570 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:38:26.570 [error] #PID<0.190233.0> running PinchflatWeb.Endpoint (connection #PID<0.190227.0>, stream id 6) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/41/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/41/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_metadata_refresh", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190233.0>, params: %{}, path_info: ["sources", "41", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/41/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJpm21RAiiZQUAQQcC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_metadata_refresh", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/41/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_metadata_refresh", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 44214}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 6, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190233.0>, params: %{}, path_info: ["sources", "41", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/41/force_metadata_refresh", (truncated) 12:38:26.869 [info] GET /sources/26/edit 12:38:26.869 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "26"} Pipelines: [:browser] 12:38:26.870 [debug] QUERY OK source="sources" db=0.2ms idle=601.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [26] 12:38:26.870 [debug] QUERY OK source="media_profiles" db=0.1ms idle=602.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:38:26.871 [debug] QUERY OK source="settings" db=0.0ms idle=321.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:26.871 [debug] QUERY OK source="settings" db=0.0ms idle=301.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:26.871 [debug] QUERY OK source="settings" db=0.0ms idle=301.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:26.873 [info] Sent 200 in 3ms 12:38:27.172 [info] GET /sources/42/edit 12:38:27.172 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "42"} Pipelines: [:browser] 12:38:27.172 [debug] QUERY OK source="sources" db=0.1ms idle=301.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:38:27.172 [debug] QUERY OK source="media_profiles" db=0.1ms idle=301.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:38:27.173 [debug] QUERY OK source="settings" db=0.0ms idle=302.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:27.173 [debug] QUERY OK source="settings" db=0.0ms idle=302.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:27.173 [debug] QUERY OK source="settings" db=0.0ms idle=302.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:27.175 [info] Sent 200 in 3ms 12:38:27.472 [info] GET /sources/27/edit 12:38:27.472 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "27"} Pipelines: [:browser] 12:38:27.473 [debug] QUERY OK source="sources" db=0.1ms idle=300.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [27] 12:38:27.473 [debug] QUERY OK source="media_profiles" db=0.1ms idle=300.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:38:27.474 [debug] QUERY OK source="settings" db=0.0ms idle=300.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:27.474 [debug] QUERY OK source="settings" db=0.0ms idle=300.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:27.474 [debug] QUERY OK source="settings" db=0.1ms idle=300.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:27.476 [info] Sent 200 in 3ms 12:38:27.789 [info] GET /sources/23/edit 12:38:27.789 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "23"} Pipelines: [:browser] 12:38:27.789 [debug] QUERY OK source="sources" db=0.2ms idle=315.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [23] 12:38:27.790 [debug] QUERY OK source="media_profiles" db=0.1ms idle=316.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:38:27.790 [debug] QUERY OK source="settings" db=0.0ms idle=316.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:27.790 [debug] QUERY OK source="settings" db=0.0ms idle=315.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:27.790 [debug] QUERY OK source="settings" db=0.0ms idle=240.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:27.792 [info] Sent 200 in 3ms 12:38:30.710 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:38:39.964 [info] GET /sources/41/media/37534 12:38:39.964 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "37534", "source_id" => "41"} Pipelines: [:browser] 12:38:39.965 [debug] QUERY OK source="media_items" db=0.1ms idle=1410.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" = ?) [37534] 12:38:39.965 [debug] QUERY OK source="tasks" db=0.1ms idle=1404.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" [37534] 12:38:39.965 [debug] QUERY OK source="sources" db=0.1ms idle=411.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:38:39.966 [debug] QUERY OK source="settings" db=0.0ms idle=411.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:39.966 [debug] QUERY OK source="settings" db=0.0ms idle=404.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:39.966 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:39.966 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:38:39.982 [info] Sent 200 in 17ms 12:38:40.067 [info] GET /sources/5/media/1676 12:38:40.068 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1676", "source_id" => "5"} Pipelines: [:browser] 12:38:40.068 [debug] QUERY OK source="media_items" db=0.1ms idle=102.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1676] 12:38:40.068 [debug] QUERY OK source="tasks" db=0.2ms idle=102.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" [1676] 12:38:40.068 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [5] 12:38:40.069 [debug] QUERY OK source="oban_jobs" db=0.3ms 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" IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [13921, 13951, 13981, 14012, 14043, 14074, 14107, 14137, 14170, 14202, 14234, 14267, 14298, 14329, 14359, 14389, 14423, 14457, 14490, 14521, 14551, 14582, 14611, 14614, 14646, 14649, 14679, 14682, 14712, 14715, 14745, 14748, 14777, 14780, 14809, 14812] 12:38:40.070 [debug] QUERY OK source="settings" db=0.0ms idle=103.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:40.070 [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:38:40.070 [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:38:40.071 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:38:40.074 [info] Sent 200 in 6ms 12:38:40.374 [info] GET /sources/5/media/19367/edit 12:38:40.374 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "19367", "source_id" => "5"} Pipelines: [:browser] 12:38:40.374 [debug] QUERY OK source="media_items" db=0.1ms idle=305.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" = ?) [19367] 12:38:40.375 [debug] QUERY OK source="settings" db=0.0ms idle=304.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:40.375 [debug] QUERY OK source="settings" db=0.0ms idle=305.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:40.375 [debug] QUERY OK source="settings" db=0.0ms idle=304.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:40.376 [info] Sent 200 in 2ms 12:38:40.688 [info] GET /sources/41/media/37532 12:38:40.688 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "37532", "source_id" => "41"} Pipelines: [:browser] 12:38:40.688 [debug] QUERY OK source="media_items" db=0.1ms idle=313.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" = ?) [37532] 12:38:40.688 [debug] QUERY OK source="tasks" db=0.1ms idle=313.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" [37532] 12:38:40.689 [debug] QUERY OK source="sources" db=0.1ms idle=313.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:38:40.689 [debug] QUERY OK source="settings" db=0.0ms idle=313.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:40.689 [debug] QUERY OK source="settings" db=0.0ms idle=126.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:40.689 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:40.690 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:38:40.703 [info] Sent 200 in 15ms 12:38:40.968 [info] GET /sources/41/media/15331/edit 12:38:40.968 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15331", "source_id" => "41"} Pipelines: [:browser] 12:38:40.969 [debug] QUERY OK source="media_items" db=0.2ms idle=279.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" = ?) [15331] 12:38:40.969 [debug] QUERY OK source="settings" db=0.1ms idle=279.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:40.969 [debug] QUERY OK source="settings" db=0.0ms idle=279.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:40.969 [debug] QUERY OK source="settings" db=0.0ms idle=279.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:40.970 [info] Sent 200 in 2ms 12:38:41.271 [info] GET /sources/5/media/19367 12:38:41.271 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "19367", "source_id" => "5"} Pipelines: [:browser] 12:38:41.271 [debug] QUERY OK source="media_items" db=0.1ms idle=581.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" = ?) [19367] 12:38:41.272 [debug] QUERY OK source="tasks" db=0.0ms idle=303.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" [19367] 12:38:41.272 [debug] QUERY OK source="sources" db=0.1ms idle=302.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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:38:41.272 [debug] QUERY OK source="settings" db=0.0ms idle=302.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:41.272 [debug] QUERY OK source="settings" db=0.0ms idle=302.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:41.273 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:41.273 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:38:41.291 [info] Sent 200 in 20ms 12:38:41.571 [info] GET /sources/41/media/15331 12:38:41.571 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15331", "source_id" => "41"} Pipelines: [:browser] 12:38:41.572 [debug] QUERY OK source="media_items" db=0.1ms idle=299.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" = ?) [15331] 12:38:41.572 [debug] QUERY OK source="tasks" db=0.1ms idle=299.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" [15331] 12:38:41.572 [debug] QUERY OK source="sources" db=0.2ms idle=299.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:38:41.573 [debug] QUERY OK source="settings" db=0.1ms idle=299.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:41.573 [debug] QUERY OK source="settings" db=0.0ms 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:38:41.573 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:41.574 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:38:41.605 [info] Sent 200 in 34ms 12:38:41.828 [info] GET /sources/16/media/18721/edit 12:38:41.828 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "18721", "source_id" => "16"} Pipelines: [:browser] 12:38:41.828 [debug] QUERY OK source="media_items" db=0.1ms idle=256.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" = ?) [18721] 12:38:41.829 [debug] QUERY OK source="settings" db=0.1ms idle=256.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:41.829 [debug] QUERY OK source="settings" db=0.0ms idle=256.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:41.829 [debug] QUERY OK source="settings" db=0.0ms idle=256.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:41.830 [info] Sent 200 in 2ms 12:38:42.108 [info] GET /sources/42/sync_files_on_disk 12:38:42.109 [debug] QUERY OK source="settings" db=0.1ms idle=534.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:42.109 [debug] QUERY OK source="settings" db=0.0ms 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 [] 12:38:42.109 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:38:42.109 [error] #PID<0.190264.0> running PinchflatWeb.Endpoint (connection #PID<0.190240.0>, stream id 9) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/42/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/42/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190240.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/sync_files_on_disk", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 48640}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190264.0>, params: %{}, path_info: ["sources", "42", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/42/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJqgvn1ZPW4cAAQRMC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190240.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/sync_files_on_disk", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 48640}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/42/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190240.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/sync_files_on_disk", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 48640}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 9, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190264.0>, params: %{}, path_info: ["sources", "42", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch (truncated) 12:38:42.326 [info] GET /sources/42/force_redownload 12:38:42.326 [debug] QUERY OK source="settings" db=0.1ms idle=497.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:42.327 [debug] QUERY OK source="settings" db=0.1ms 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 [] 12:38:42.327 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:38:42.327 [error] #PID<0.190265.0> running PinchflatWeb.Endpoint (connection #PID<0.190240.0>, stream id 10) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/42/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/42/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190240.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_redownload", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 48640}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190265.0>, params: %{}, path_info: ["sources", "42", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/42/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJqhjj0b_9zk0AQROC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190240.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_redownload", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 48640}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/42/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190240.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_redownload", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 48640}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 10, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYS1o5SGJUNUg1Ql9XV0JXQ3A2cEVFTEpt.Jwyuxxdu90ys7bOR_KJJN2LEufX3YaK917GtmSYA9NQ" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190265.0>, params: %{}, path_info: ["sources", "42", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function< (truncated) 12:38:58.120 [info] GET /sources/1/media/46807 12:38:58.120 [info] GET /sources/5/media/48759 12:38:58.120 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "46807", "source_id" => "1"} Pipelines: [:browser] 12:38:58.120 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "48759", "source_id" => "5"} Pipelines: [:browser] 12:38:58.121 [debug] QUERY OK source="media_items" db=0.3ms idle=566.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" = ?) [46807] 12:38:58.121 [debug] QUERY OK source="media_items" db=0.4ms idle=566.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" = ?) [48759] 12:38:58.121 [debug] QUERY OK source="tasks" db=0.0ms idle=566.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" [46807] 12:38:58.121 [debug] QUERY OK source="sources" db=0.3ms idle=566.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:38:58.121 [debug] QUERY OK source="sources" db=0.3ms idle=0.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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:38:58.121 [debug] QUERY OK source="tasks" db=0.3ms idle=540.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" [48759] 12:38:58.122 [debug] QUERY OK source="settings" db=0.1ms 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:38:58.122 [debug] QUERY OK source="settings" db=0.1ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:58.122 [debug] QUERY OK source="settings" db=0.0ms 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:38:58.122 [debug] QUERY OK source="settings" db=0.0ms 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:38:58.122 [debug] QUERY OK source="settings" db=0.1ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:58.122 [debug] QUERY OK source="settings" db=0.1ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:58.123 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:38:58.123 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:38:58.139 [info] Sent 200 in 18ms 12:38:58.155 [info] Sent 200 in 35ms 12:38:58.387 [info] GET /sources/1/media/24342/edit 12:38:58.387 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "24342", "source_id" => "1"} Pipelines: [:browser] 12:38:58.387 [debug] QUERY OK source="media_items" db=0.1ms idle=265.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" = ?) [24342] 12:38:58.388 [debug] QUERY OK source="settings" db=0.0ms idle=265.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:58.388 [debug] QUERY OK source="settings" db=0.0ms idle=265.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:58.388 [debug] QUERY OK source="settings" db=0.0ms idle=265.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:58.389 [info] Sent 200 in 2ms 12:38:58.756 [info] GET /sources/5/media/16971 12:38:58.756 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16971", "source_id" => "5"} Pipelines: [:browser] 12:38:58.757 [debug] QUERY OK source="media_items" db=0.2ms idle=369.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" = ?) [16971] 12:38:58.757 [debug] QUERY OK source="tasks" db=0.0ms idle=369.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" [16971] 12:38:58.757 [debug] QUERY OK source="sources" db=0.1ms idle=369.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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:38:58.758 [debug] QUERY OK source="settings" db=0.0ms idle=369.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:58.758 [debug] QUERY OK source="settings" db=0.0ms idle=176.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:58.758 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:58.758 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:38:58.775 [info] Sent 200 in 19ms 12:38:59.270 [info] GET /sources/5/media/1669/edit 12:38:59.270 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1669", "source_id" => "5"} Pipelines: [:browser] 12:38:59.271 [debug] QUERY OK source="media_items" db=0.1ms idle=513.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" = ?) [1669] 12:38:59.271 [debug] QUERY OK source="settings" db=0.0ms idle=513.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:59.271 [debug] QUERY OK source="settings" db=0.0ms 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 [] 12:38:59.271 [debug] QUERY OK source="settings" db=0.0ms idle=513.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:59.272 [info] Sent 200 in 2ms 12:38:59.399 [info] GET /sources/41/media/37534/edit 12:38:59.399 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "37534", "source_id" => "41"} Pipelines: [:browser] 12:38:59.399 [debug] QUERY OK source="media_items" db=0.1ms idle=640.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" = ?) [37534] 12:38:59.400 [debug] QUERY OK source="settings" db=0.1ms idle=128.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:59.400 [debug] QUERY OK source="settings" db=0.0ms idle=128.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:59.400 [debug] QUERY OK source="settings" db=0.0ms idle=128.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:59.401 [info] Sent 200 in 2ms 12:38:59.673 [info] GET /sources/5/media/1676/edit 12:38:59.673 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1676", "source_id" => "5"} Pipelines: [:browser] 12:38:59.673 [debug] QUERY OK source="media_items" db=0.1ms idle=273.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" = ?) [1676] 12:38:59.673 [debug] QUERY OK source="settings" db=0.0ms idle=273.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:59.674 [debug] QUERY OK source="settings" db=0.0ms idle=273.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:59.674 [debug] QUERY OK source="settings" db=0.0ms idle=273.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:59.675 [info] Sent 200 in 2ms 12:38:59.980 [info] GET /sources/1/media/24342 12:38:59.980 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "24342", "source_id" => "1"} Pipelines: [:browser] 12:38:59.981 [debug] QUERY OK source="media_items" db=0.1ms idle=397.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" = ?) [24342] 12:38:59.981 [debug] QUERY OK source="tasks" db=0.1ms idle=307.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" [24342] 12:38:59.981 [debug] QUERY OK source="sources" db=0.2ms idle=307.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:38:59.981 [debug] QUERY OK source="settings" db=0.0ms idle=307.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:59.981 [debug] QUERY OK source="settings" db=0.0ms idle=307.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:59.982 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:38:59.982 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:38:59.997 [info] Sent 200 in 17ms 12:39:00.300 [info] GET /sources/41/media/37532/edit 12:39:00.300 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "37532", "source_id" => "41"} Pipelines: [:browser] 12:39:00.301 [debug] QUERY OK source="media_items" db=0.2ms idle=319.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" = ?) [37532] 12:39:00.301 [debug] QUERY OK source="settings" db=0.1ms idle=319.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:00.301 [debug] QUERY OK source="settings" db=0.0ms idle=319.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:00.301 [debug] QUERY OK source="settings" db=0.0ms idle=319.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:00.302 [info] Sent 200 in 2ms 12:39:00.320 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:39:00.512 [info] GET /sources/5/media/1669 12:39:00.513 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1669", "source_id" => "5"} Pipelines: [:browser] 12:39:00.513 [debug] QUERY OK source="media_items" db=0.1ms idle=212.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" = ?) [1669] 12:39:00.514 [debug] QUERY OK source="tasks" db=0.2ms idle=212.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" [1669] 12:39:00.514 [debug] QUERY OK source="sources" db=0.2ms idle=212.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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:39:00.514 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=212.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [13920, 13950, 13980, 14011, 14042, 14073, 14106, 14136, 14169, 14201, 14233, 14266, 14297, 14328, 14358, 14388, 14422, 14456, 14489, 14520, 14550, 14581, 14610, 14613, 14645, 14648, 14678, 14681, 14711, 14714, 14744, 14747, 14776, 14779, 14808, 14811] 12:39:00.515 [debug] QUERY OK source="settings" db=0.0ms idle=194.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:00.515 [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:39:00.515 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:00.516 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:39:00.519 [info] Sent 200 in 6ms 12:39:00.711 [info] {"source":"oban","duration":547,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:39:16.434 [info] GET /sources/5/media/16967/edit 12:39:16.434 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "16967", "source_id" => "5"} Pipelines: [:browser] 12:39:16.434 [debug] QUERY OK source="media_items" db=0.1ms idle=1836.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" = ?) [16967] 12:39:16.435 [debug] QUERY OK source="settings" db=0.0ms idle=880.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:16.435 [debug] QUERY OK source="settings" db=0.0ms idle=880.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:16.435 [debug] QUERY OK source="settings" db=0.0ms idle=881.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:16.436 [info] Sent 200 in 2ms 12:39:16.589 [info] GET /sources/41/media/37681 12:39:16.589 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "37681", "source_id" => "41"} Pipelines: [:browser] 12:39:16.590 [debug] QUERY OK source="media_items" db=0.1ms idle=991.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" = ?) [37681] 12:39:16.590 [debug] QUERY OK source="tasks" db=0.1ms idle=155.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" [37681] 12:39:16.590 [debug] QUERY OK source="sources" db=0.2ms idle=155.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:39:16.590 [debug] QUERY OK source="settings" db=0.0ms idle=155.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:16.591 [debug] QUERY OK source="settings" db=0.1ms idle=155.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:16.591 [debug] QUERY OK source="settings" db=0.1ms 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:39:16.592 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:39:16.605 [info] Sent 200 in 15ms 12:39:16.932 [info] GET /sources/42/media/15751/edit 12:39:16.932 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15751", "source_id" => "42"} Pipelines: [:browser] 12:39:16.933 [debug] QUERY OK source="media_items" db=0.1ms idle=341.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" = ?) [15751] 12:39:16.933 [debug] QUERY OK source="settings" db=0.1ms idle=342.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:16.933 [debug] QUERY OK source="settings" db=0.0ms idle=342.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:16.934 [debug] QUERY OK source="settings" db=0.0ms idle=341.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:16.934 [info] Sent 200 in 2ms 12:39:16.981 [info] GET /sources/5/media/48759/edit 12:39:16.982 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "48759", "source_id" => "5"} Pipelines: [:browser] 12:39:16.982 [debug] QUERY OK source="media_items" db=0.1ms idle=382.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" = ?) [48759] 12:39:16.982 [debug] QUERY OK source="settings" db=0.0ms idle=49.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:16.982 [debug] QUERY OK source="settings" db=0.0ms 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:39:16.983 [debug] QUERY OK source="settings" db=0.1ms idle=49.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:16.983 [info] Sent 200 in 1ms 12:39:17.152 [info] GET /sources/5/media/1381 12:39:17.152 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1381", "source_id" => "5"} Pipelines: [:browser] 12:39:17.153 [debug] QUERY OK source="media_items" db=0.1ms idle=218.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" = ?) [1381] 12:39:17.153 [debug] QUERY OK source="sources" db=0.2ms idle=170.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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:39:17.153 [debug] QUERY OK source="tasks" db=0.4ms idle=170.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" [1381] 12:39:17.154 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=171.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 (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [13918, 13919, 13948, 13949, 13978, 13979, 14008, 14009, 14040, 14041, 14071, 14072, 14104, 14105, 14134, 14135, 14167, 14168, 14199, 14200, 14231, 14232, 14264, 14265, 14295, 14296, 14326, 14327, 14356, 14357, 14386, 14387, 14419, 14420, 14453, 14454, 14486, 14488, 14518, 14519, 14548, 14549, 14579, 14580, 14609, 14612, 14643, 14647, 14676, 14680, ...] 12:39:17.155 [debug] QUERY OK source="settings" db=0.0ms idle=172.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:17.155 [debug] QUERY OK source="settings" db=0.0ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:17.156 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:17.156 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:39:17.161 [info] Sent 200 in 8ms 12:39:17.874 [info] GET /sources/5/media/16967 12:39:17.875 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16967", "source_id" => "5"} Pipelines: [:browser] 12:39:17.875 [debug] QUERY OK source="media_items" db=0.1ms idle=719.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" = ?) [16967] 12:39:17.875 [debug] QUERY OK source="tasks" db=0.1ms idle=719.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" [16967] 12:39:17.875 [debug] QUERY OK source="sources" db=0.1ms idle=719.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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:39:17.876 [debug] QUERY OK source="settings" db=0.0ms idle=719.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:17.876 [debug] QUERY OK source="settings" db=0.0ms idle=275.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:17.876 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:17.877 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:39:17.892 [info] Sent 200 in 17ms 12:39:17.975 [info] GET /sources/41 12:39:17.976 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "41"} Pipelines: [:browser] 12:39:17.976 [debug] QUERY OK source="sources" db=0.1ms idle=100.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:39:17.976 [debug] QUERY OK source="media_profiles" db=0.0ms idle=100.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:39:17.977 [debug] QUERY OK source="tasks" db=0.1ms idle=100.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 (?,?,?,?)) [41, "executing", "available", "scheduled", "retryable"] 12:39:17.977 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=100.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" = ?) [14806] 12:39:17.977 [debug] QUERY OK source="settings" db=0.0ms idle=100.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:17.977 [debug] QUERY OK source="settings" db=0.1ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:17.978 [debug] QUERY OK source="settings" db=0.1ms 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:39:17.978 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:39:17.979 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [41] 12:39:17.979 [debug] QUERY OK source="media_items" db=0.4ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [41, 10, 0] 12:39:17.980 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:39:17.980 [debug] QUERY OK source="media_items" db=0.0ms idle=2.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [41] 12:39:17.980 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [41, 10, 0] 12:39:17.981 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:39:17.981 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [41] 12:39:17.982 [debug] QUERY OK source="media_items" db=0.4ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [41, 10, 0] 12:39:17.983 [info] Sent 200 in 7ms 12:39:18.033 [info] GET /sources/1/media/46807/edit 12:39:18.033 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "46807", "source_id" => "1"} Pipelines: [:browser] 12:39:18.033 [debug] QUERY OK source="media_items" db=0.1ms idle=53.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" = ?) [46807] 12:39:18.034 [debug] QUERY OK source="settings" db=0.0ms idle=53.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:18.034 [debug] QUERY OK source="settings" db=0.0ms idle=52.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:18.034 [debug] QUERY OK source="settings" db=0.0ms idle=52.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:18.035 [info] Sent 200 in 2ms 12:39:18.305 [info] GET /sources/42/media/15751 12:39:18.305 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15751", "source_id" => "42"} Pipelines: [:browser] 12:39:18.305 [debug] QUERY OK source="media_items" db=0.1ms idle=323.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" = ?) [15751] 12:39:18.306 [debug] QUERY OK source="tasks" db=0.0ms idle=272.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" [15751] 12:39:18.306 [debug] QUERY OK source="sources" db=0.1ms idle=272.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:39:18.306 [debug] QUERY OK source="settings" db=0.0ms idle=272.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:18.306 [debug] QUERY OK source="settings" db=0.0ms idle=272.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:18.307 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:18.307 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:39:18.308 [info] Sent 200 in 3ms 12:39:18.536 [info] GET /sources/5/media/16971/edit 12:39:18.536 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "16971", "source_id" => "5"} Pipelines: [:browser] 12:39:18.537 [debug] QUERY OK source="media_items" db=0.1ms idle=230.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" = ?) [16971] 12:39:18.537 [debug] QUERY OK source="settings" db=0.1ms idle=230.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:18.537 [debug] QUERY OK source="settings" db=0.0ms idle=230.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:18.538 [debug] QUERY OK source="settings" db=0.0ms idle=230.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:18.538 [info] Sent 200 in 2ms 12:39:30.711 [info] {"source":"oban","duration":521,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:39:42.229 [info] GET /sources/42/media/15752 12:39:42.229 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15752", "source_id" => "42"} Pipelines: [:browser] 12:39:42.229 [info] GET /sources/5/media/1546 12:39:42.230 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1546", "source_id" => "5"} Pipelines: [:browser] 12:39:42.230 [debug] QUERY OK source="media_items" db=0.1ms idle=1601.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" = ?) [15752] 12:39:42.230 [debug] QUERY OK source="media_items" db=0.0ms idle=675.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" = ?) [1546] 12:39:42.230 [debug] QUERY OK source="tasks" db=0.1ms idle=675.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" [15752] 12:39:42.230 [debug] QUERY OK source="tasks" db=0.2ms idle=601.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" [1546] 12:39:42.230 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [5] 12:39:42.230 [debug] QUERY OK source="sources" db=0.5ms idle=675.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:39:42.231 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=0.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 (?,?,?,?)) [13597, 14010, 14421, 14455] 12:39:42.231 [debug] QUERY OK source="settings" db=0.2ms 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:39:42.231 [debug] QUERY OK source="settings" db=0.1ms 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:39:42.232 [debug] QUERY OK source="settings" db=0.2ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.232 [debug] QUERY OK source="settings" db=0.2ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.232 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.232 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.232 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.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:39:42.233 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.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:39:42.233 [info] Sent 200 in 4ms 12:39:42.234 [info] Sent 200 in 4ms 12:39:42.467 [info] GET /sources/16/media/18722 12:39:42.467 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18722", "source_id" => "16"} Pipelines: [:browser] 12:39:42.467 [debug] QUERY OK source="media_items" db=0.1ms idle=235.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" = ?) [18722] 12:39:42.467 [debug] QUERY OK source="tasks" db=0.0ms idle=235.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" [18722] 12:39:42.468 [debug] QUERY OK source="sources" db=0.1ms idle=235.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:39:42.468 [debug] QUERY OK source="settings" db=0.0ms idle=235.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.468 [debug] QUERY OK source="settings" db=0.0ms idle=235.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.468 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.469 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:39:42.483 [info] Sent 200 in 16ms 12:39:42.718 [info] GET /sources/41/media/37681/edit 12:39:42.718 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "37681", "source_id" => "41"} Pipelines: [:browser] 12:39:42.719 [debug] QUERY OK source="media_items" db=0.1ms idle=250.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" = ?) [37681] 12:39:42.719 [debug] QUERY OK source="settings" db=0.1ms idle=251.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.719 [debug] QUERY OK source="settings" db=0.0ms idle=251.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.720 [debug] QUERY OK source="settings" db=0.0ms idle=250.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.721 [info] Sent 200 in 2ms 12:39:42.945 [info] GET /sources/5/media/71054 12:39:42.945 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "71054", "source_id" => "5"} Pipelines: [:browser] 12:39:42.945 [debug] QUERY OK source="media_items" db=0.1ms idle=315.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" = ?) [71054] 12:39:42.945 [debug] QUERY OK source="tasks" db=0.0ms idle=226.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" [71054] 12:39:42.945 [debug] QUERY OK source="sources" db=0.1ms idle=226.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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:39:42.946 [debug] QUERY OK source="settings" db=0.0ms idle=226.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.946 [debug] QUERY OK source="settings" db=0.0ms idle=226.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.946 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:42.947 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:39:42.958 [info] Sent 200 in 13ms 12:39:43.266 [info] GET /sources/18/media/16964/edit 12:39:43.266 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "16964", "source_id" => "18"} Pipelines: [:browser] 12:39:43.267 [debug] QUERY OK source="media_items" db=0.1ms idle=321.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [16964] 12:39:43.267 [debug] QUERY OK source="settings" db=0.0ms idle=321.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.267 [debug] QUERY OK source="settings" db=0.0ms idle=321.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.268 [debug] QUERY OK source="settings" db=0.0ms idle=321.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.268 [info] Sent 200 in 2ms 12:39:43.369 [info] GET /sources/18/media/13274 12:39:43.369 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "13274", "source_id" => "18"} Pipelines: [:browser] 12:39:43.370 [debug] QUERY OK source="media_items" db=0.1ms idle=422.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" = ?) [13274] 12:39:43.370 [debug] QUERY OK source="tasks" db=0.0ms idle=103.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" [13274] 12:39:43.370 [debug] QUERY OK source="sources" db=0.1ms idle=102.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 12:39:43.370 [debug] QUERY OK source="settings" db=0.0ms idle=103.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.371 [debug] QUERY OK source="settings" db=0.0ms idle=102.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.371 [debug] QUERY OK source="settings" db=0.1ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.372 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:39:43.388 [info] Sent 200 in 18ms 12:39:43.583 [info] GET /sources/41/force_download_pending 12:39:43.583 [debug] QUERY OK source="settings" db=0.1ms idle=212.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.583 [debug] QUERY OK source="settings" db=0.0ms idle=212.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.583 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:39:43.584 [error] #PID<0.190346.0> running PinchflatWeb.Endpoint (connection #PID<0.190323.0>, stream id 7) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/41/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/41/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190323.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_download_pending", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 33410}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYU29scDB0aE52WjlqbHVxYUdPclVYeTVt.VSprmZbnFzdcXfOktkGCRF6gI0-WewZQw_dpnHQ_zIM", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYU29scDB0aE52WjlqbHVxYUdPclVYeTVt.VSprmZbnFzdcXfOktkGCRF6gI0-WewZQw_dpnHQ_zIM" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190346.0>, params: %{}, path_info: ["sources", "41", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYU29scDB0aE52WjlqbHVxYUdPclVYeTVt.VSprmZbnFzdcXfOktkGCRF6gI0-WewZQw_dpnHQ_zIM" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYU29scDB0aE52WjlqbHVxYUdPclVYeTVt.VSprmZbnFzdcXfOktkGCRF6gI0-WewZQw_dpnHQ_zIM"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/41/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJuFwViHA97ZsAVkgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190323.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_download_pending", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 33410}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYU29scDB0aE52WjlqbHVxYUdPclVYeTVt.VSprmZbnFzdcXfOktkGCRF6gI0-WewZQw_dpnHQ_zIM", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/41/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190323.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/force_download_pending", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 33410}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYU29scDB0aE52WjlqbHVxYUdPclVYeTVt.VSprmZbnFzdcXfOktkGCRF6gI0-WewZQw_dpnHQ_zIM", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYU29scDB0aE52WjlqbHVxYUdPclVYeTVt.VSprmZbnFzdcXfOktkGCRF6gI0-WewZQw_dpnHQ_zIM" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190346.0>, params: %{}, path_info: ["sources", "41", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => (truncated) 12:39:43.646 [info] GET /sources/5/media/1381/edit 12:39:43.646 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1381", "source_id" => "5"} Pipelines: [:browser] 12:39:43.647 [debug] QUERY OK source="media_items" db=0.1ms idle=275.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" = ?) [1381] 12:39:43.647 [debug] QUERY OK source="settings" db=0.0ms idle=275.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.647 [debug] QUERY OK source="settings" db=0.0ms idle=64.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.648 [debug] QUERY OK source="settings" db=0.0ms idle=64.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.648 [info] Sent 200 in 2ms 12:39:43.933 [info] GET /sources/41/media/49854 12:39:43.933 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "49854", "source_id" => "41"} Pipelines: [:browser] 12:39:43.934 [debug] QUERY OK source="media_items" db=0.1ms idle=302.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" = ?) [49854] 12:39:43.934 [debug] QUERY OK source="tasks" db=0.0ms idle=287.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" [49854] 12:39:43.934 [debug] QUERY OK source="sources" db=0.1ms idle=286.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:39:43.934 [debug] QUERY OK source="settings" db=0.0ms 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:39:43.935 [debug] QUERY OK source="settings" db=0.0ms idle=286.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.935 [debug] QUERY OK source="settings" db=0.1ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:39:43.935 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:39:43.955 [info] Sent 200 in 22ms 12:40:00.321 [info] {"source":"oban","duration":191,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:40:00.713 [info] {"source":"oban","duration":628,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:40:19.849 [info] GET /sources/16/media/18716 12:40:19.849 [info] GET /sources/41/media/15307/edit 12:40:19.849 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15307", "source_id" => "41"} Pipelines: [:browser] 12:40:19.849 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18716", "source_id" => "16"} Pipelines: [:browser] 12:40:19.850 [debug] QUERY OK source="media_items" db=0.3ms idle=295.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" = ?) [18716] 12:40:19.850 [debug] QUERY OK source="media_items" db=0.4ms idle=1182.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" = ?) [15307] 12:40:19.850 [debug] QUERY OK source="tasks" db=0.1ms idle=296.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" [18716] 12:40:19.850 [debug] QUERY OK source="settings" db=0.2ms idle=296.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:19.850 [debug] QUERY OK source="sources" db=0.3ms idle=182.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:40:19.851 [debug] QUERY OK source="settings" db=0.0ms 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:40:19.851 [debug] QUERY OK source="settings" db=0.0ms 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:40:19.851 [debug] QUERY OK source="settings" db=0.0ms 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:40:19.851 [debug] QUERY OK source="settings" db=0.0ms 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:40:19.851 [debug] QUERY OK source="settings" db=0.0ms 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:40:19.852 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.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:40:19.852 [info] Sent 200 in 2ms 12:40:19.866 [info] Sent 200 in 17ms 12:40:20.023 [info] GET /sources/42 12:40:20.023 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "42"} Pipelines: [:browser] 12:40:20.024 [debug] QUERY OK source="sources" db=0.1ms idle=172.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:40:20.024 [debug] QUERY OK source="media_profiles" db=0.1ms idle=172.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:40:20.024 [debug] QUERY OK source="tasks" db=0.0ms idle=173.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 (?,?,?,?)) [42, "executing", "available", "scheduled", "retryable"] 12:40:20.024 [debug] QUERY OK source="settings" db=0.0ms idle=173.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.024 [debug] QUERY OK source="settings" db=0.0ms idle=172.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.025 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.026 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:40:20.026 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [42] 12:40:20.027 [debug] QUERY OK source="media_items" db=0.9ms idle=2.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [42, 10, 0] 12:40:20.028 [debug] QUERY OK source="sources" db=0.0ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:40:20.028 [debug] QUERY OK source="media_items" db=0.1ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [42] 12:40:20.029 [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 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [42, 10, 0] 12:40:20.029 [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" = ?) [42] 12:40:20.030 [debug] QUERY OK source="media_items" db=0.4ms idle=2.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [42] 12:40:20.031 [debug] QUERY OK source="media_items" db=0.7ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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 ? [42, 10, 0] 12:40:20.031 [info] Sent 200 in 8ms 12:40:20.202 [info] GET /sources/16/media/100185/edit 12:40:20.202 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "100185", "source_id" => "16"} Pipelines: [:browser] 12:40:20.202 [debug] QUERY OK source="media_items" db=0.1ms idle=173.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" = ?) [100185] 12:40:20.202 [debug] QUERY OK source="settings" db=0.0ms idle=173.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.203 [debug] QUERY OK source="settings" db=0.0ms idle=173.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.203 [debug] QUERY OK source="settings" db=0.0ms 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 [] 12:40:20.204 [info] Sent 200 in 2ms 12:40:20.319 [info] GET /sources/42/media/15752/edit 12:40:20.319 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15752", "source_id" => "42"} Pipelines: [:browser] 12:40:20.320 [debug] QUERY OK source="media_items" db=0.1ms idle=288.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" = ?) [15752] 12:40:20.320 [debug] QUERY OK source="settings" db=0.0ms idle=117.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.320 [debug] QUERY OK source="settings" db=0.0ms idle=117.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.320 [debug] QUERY OK source="settings" db=0.0ms idle=117.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.321 [info] Sent 200 in 2ms 12:40:20.468 [info] GET /sources/5/media/1546/edit 12:40:20.468 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1546", "source_id" => "5"} Pipelines: [:browser] 12:40:20.468 [debug] QUERY OK source="media_items" db=0.1ms idle=264.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" = ?) [1546] 12:40:20.468 [debug] QUERY OK source="settings" db=0.1ms idle=148.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.469 [debug] QUERY OK source="settings" db=0.0ms idle=148.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.469 [debug] QUERY OK source="settings" db=0.0ms idle=148.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.470 [info] Sent 200 in 2ms 12:40:20.595 [info] GET /sources/41/media/15307 12:40:20.595 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15307", "source_id" => "41"} Pipelines: [:browser] 12:40:20.596 [debug] QUERY OK source="media_items" db=0.1ms idle=275.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" = ?) [15307] 12:40:20.596 [debug] QUERY OK source="tasks" db=0.0ms idle=128.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" [15307] 12:40:20.596 [debug] QUERY OK source="sources" db=0.1ms idle=127.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:40:20.597 [debug] QUERY OK source="settings" db=0.0ms idle=127.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.597 [debug] QUERY OK source="settings" db=0.0ms idle=127.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.597 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.598 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:40:20.610 [info] Sent 200 in 14ms 12:40:20.712 [info] GET /sources/16/media/18722/edit 12:40:20.712 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "18722", "source_id" => "16"} Pipelines: [:browser] 12:40:20.712 [debug] QUERY OK source="media_items" db=0.1ms idle=115.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" = ?) [18722] 12:40:20.713 [debug] QUERY OK source="settings" db=0.0ms idle=115.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.713 [debug] QUERY OK source="settings" db=0.0ms idle=115.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.713 [debug] QUERY OK source="settings" db=0.0ms idle=115.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.714 [info] Sent 200 in 2ms 12:40:20.827 [info] GET /sources/18/media/13274/edit 12:40:20.827 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "13274", "source_id" => "18"} Pipelines: [:browser] 12:40:20.827 [debug] QUERY OK source="media_items" db=0.1ms idle=158.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" = ?) [13274] 12:40:20.827 [debug] QUERY OK source="settings" db=0.1ms idle=115.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.828 [debug] QUERY OK source="settings" db=0.0ms idle=114.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.828 [debug] QUERY OK source="settings" db=0.1ms idle=115.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:20.829 [info] Sent 200 in 2ms 12:40:21.010 [info] GET /sources/16/media/100185 12:40:21.010 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "100185", "source_id" => "16"} Pipelines: [:browser] 12:40:21.010 [debug] QUERY OK source="media_items" db=0.1ms idle=296.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" = ?) [100185] 12:40:21.010 [debug] QUERY OK source="tasks" db=0.1ms idle=183.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" [100185] 12:40:21.011 [debug] QUERY OK source="sources" db=0.2ms idle=182.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:40:21.011 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=183.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" = ?) [14163] 12:40:21.011 [debug] QUERY OK source="settings" db=0.0ms idle=182.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:21.011 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:21.012 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:21.012 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:40:21.025 [info] Sent 200 in 15ms 12:40:29.668 [info] GET /sources/16/media/18717 12:40:29.669 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18717", "source_id" => "16"} Pipelines: [:browser] 12:40:29.669 [debug] QUERY OK source="media_items" db=0.1ms idle=1114.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" = ?) [18717] 12:40:29.669 [debug] QUERY OK source="tasks" db=0.0ms idle=1115.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" [18717] 12:40:29.669 [debug] QUERY OK source="sources" db=0.1ms idle=1115.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:40:29.670 [debug] QUERY OK source="settings" db=0.0ms idle=1115.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:29.670 [debug] QUERY OK source="settings" db=0.0ms idle=992.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:29.670 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:29.670 [info] GET /sources/5/media/34461 12:40:29.671 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "34461", "source_id" => "5"} Pipelines: [:browser] 12:40:29.671 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:40:29.671 [debug] QUERY OK source="media_items" db=0.1ms 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" = ?) [34461] 12:40:29.671 [debug] QUERY OK source="tasks" db=0.1ms idle=1.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" [34461] 12:40:29.671 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [5] 12:40:29.672 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:29.672 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:29.672 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:29.673 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:40:29.684 [info] Sent 200 in 15ms 12:40:29.694 [info] Sent 200 in 23ms 12:40:29.787 [info] GET /sources/16/media/18723/edit 12:40:29.787 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "18723", "source_id" => "16"} Pipelines: [:browser] 12:40:29.787 [debug] QUERY OK source="media_items" db=0.1ms idle=115.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" = ?) [18723] 12:40:29.788 [debug] QUERY OK source="settings" db=0.0ms idle=115.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:29.788 [debug] QUERY OK source="settings" db=0.0ms idle=115.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:29.788 [debug] QUERY OK source="settings" db=0.1ms idle=115.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:29.789 [info] Sent 200 in 2ms 12:40:29.962 [info] GET /sources/16/media/18718/edit 12:40:29.962 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "18718", "source_id" => "16"} Pipelines: [:browser] 12:40:29.962 [debug] QUERY OK source="media_items" db=0.1ms idle=283.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" = ?) [18718] 12:40:29.963 [debug] QUERY OK source="settings" db=0.1ms idle=175.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:29.963 [debug] QUERY OK source="settings" db=0.0ms idle=175.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:29.963 [debug] QUERY OK source="settings" db=0.0ms 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 [] 12:40:29.964 [info] Sent 200 in 2ms 12:40:30.145 [info] GET /sources/16/media/18716/edit 12:40:30.145 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "18716", "source_id" => "16"} Pipelines: [:browser] 12:40:30.146 [debug] QUERY OK source="media_items" db=0.1ms idle=357.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" = ?) [18716] 12:40:30.146 [debug] QUERY OK source="settings" db=0.0ms idle=183.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:30.146 [debug] QUERY OK source="settings" db=0.0ms idle=183.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:30.146 [debug] QUERY OK source="settings" db=0.0ms idle=183.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:30.147 [info] Sent 200 in 2ms 12:40:30.270 [info] GET /sources/42/force_download_pending 12:40:30.271 [debug] QUERY OK source="settings" db=0.1ms idle=307.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:30.271 [debug] QUERY OK source="settings" db=0.0ms idle=125.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:30.271 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:40:30.271 [error] #PID<0.190389.0> running PinchflatWeb.Endpoint (connection #PID<0.190381.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/42/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/42/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190381.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_download_pending", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 48640}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUnI0SmhxbjdZdVNKNW91YXYwaG9FUndD.gqnVe72SGZWUO-New9zVDOl_xet0M0vtJZiuVQNyVAg", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUnI0SmhxbjdZdVNKNW91YXYwaG9FUndD.gqnVe72SGZWUO-New9zVDOl_xet0M0vtJZiuVQNyVAg" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190389.0>, params: %{}, path_info: ["sources", "42", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUnI0SmhxbjdZdVNKNW91YXYwaG9FUndD.gqnVe72SGZWUO-New9zVDOl_xet0M0vtJZiuVQNyVAg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUnI0SmhxbjdZdVNKNW91YXYwaG9FUndD.gqnVe72SGZWUO-New9zVDOl_xet0M0vtJZiuVQNyVAg"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/42/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJwzrh6KJ9zx4AVlOB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190381.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_download_pending", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 48640}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUnI0SmhxbjdZdVNKNW91YXYwaG9FUndD.gqnVe72SGZWUO-New9zVDOl_xet0M0vtJZiuVQNyVAg", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/42/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190381.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/force_download_pending", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 48640}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUnI0SmhxbjdZdVNKNW91YXYwaG9FUndD.gqnVe72SGZWUO-New9zVDOl_xet0M0vtJZiuVQNyVAg", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUnI0SmhxbjdZdVNKNW91YXYwaG9FUndD.gqnVe72SGZWUO-New9zVDOl_xet0M0vtJZiuVQNyVAg" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190389.0>, params: %{}, path_info: ["sources", "42", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => (truncated) 12:40:30.713 [info] {"source":"oban","duration":468,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:40:30.730 [info] GET /sources/16/media/18720 12:40:30.731 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18720", "source_id" => "16"} Pipelines: [:browser] 12:40:30.731 [debug] QUERY OK source="media_items" db=0.1ms idle=584.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" = ?) [18720] 12:40:30.731 [debug] QUERY OK source="tasks" db=0.0ms idle=460.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" [18720] 12:40:30.731 [debug] QUERY OK source="sources" db=0.1ms idle=460.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:40:30.732 [debug] QUERY OK source="settings" db=0.0ms idle=52.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:30.732 [debug] QUERY OK source="settings" db=0.0ms idle=18.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:30.732 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:30.732 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:40:30.750 [info] Sent 200 in 19ms 12:40:30.867 [info] GET /sources/16/media/18719 12:40:30.867 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18719", "source_id" => "16"} Pipelines: [:browser] 12:40:30.867 [debug] QUERY OK source="media_items" db=0.1ms idle=135.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" = ?) [18719] 12:40:30.868 [debug] QUERY OK source="tasks" db=0.0ms idle=136.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" [18719] 12:40:30.868 [debug] QUERY OK source="sources" db=0.1ms idle=136.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:40:30.868 [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:40:30.868 [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:40:30.869 [debug] QUERY OK source="settings" db=0.1ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:30.869 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:40:30.876 [info] Sent 200 in 8ms 12:40:30.905 [info] GET /sources/16/media/18723 12:40:30.905 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18723", "source_id" => "16"} Pipelines: [:browser] 12:40:30.905 [debug] QUERY OK source="media_items" db=0.1ms idle=36.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" = ?) [18723] 12:40:30.905 [debug] QUERY OK source="tasks" db=0.1ms idle=37.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" [18723] 12:40:30.906 [debug] QUERY OK source="sources" db=0.2ms idle=37.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:40:30.906 [debug] QUERY OK source="settings" db=0.0ms 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:40:30.906 [debug] QUERY OK source="settings" db=0.0ms idle=36.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:30.906 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:30.907 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:40:30.915 [info] Sent 200 in 10ms 12:40:31.041 [info] GET /sources/16/media/18718 12:40:31.041 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18718", "source_id" => "16"} Pipelines: [:browser] 12:40:31.042 [debug] QUERY OK source="media_items" db=0.1ms idle=136.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" = ?) [18718] 12:40:31.042 [debug] QUERY OK source="tasks" db=0.1ms idle=136.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" [18718] 12:40:31.042 [debug] QUERY OK source="sources" db=0.2ms idle=136.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:40:31.043 [debug] QUERY OK source="settings" db=0.0ms 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:40:31.043 [debug] QUERY OK source="settings" db=0.0ms idle=136.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:31.043 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:31.044 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:40:31.048 [info] Sent 200 in 7ms 12:40:37.956 [info] GET /sources/41/media/129560/edit 12:40:37.956 [info] GET /sources/41/media/49854/edit 12:40:37.956 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "129560", "source_id" => "41"} Pipelines: [:browser] 12:40:37.956 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "49854", "source_id" => "41"} Pipelines: [:browser] 12:40:37.957 [debug] QUERY OK source="media_items" db=0.3ms idle=1402.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" = ?) [129560] 12:40:37.957 [debug] QUERY OK source="media_items" db=0.3ms idle=1402.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" = ?) [49854] 12:40:37.957 [debug] QUERY OK source="settings" db=0.1ms idle=1402.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:37.957 [debug] QUERY OK source="settings" db=0.1ms idle=1269.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:37.957 [debug] QUERY OK source="settings" db=0.1ms idle=268.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:37.957 [debug] QUERY OK source="settings" db=0.1ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:37.958 [debug] QUERY OK source="settings" db=0.1ms 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:40:37.958 [debug] QUERY OK source="settings" db=0.1ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:37.958 [info] Sent 200 in 2ms 12:40:37.958 [info] Sent 200 in 2ms 12:40:38.006 [info] GET /sources/5/media/34461/edit 12:40:38.007 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "34461", "source_id" => "5"} Pipelines: [:browser] 12:40:38.007 [debug] QUERY OK source="media_items" db=0.1ms idle=49.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" = ?) [34461] 12:40:38.007 [debug] QUERY OK source="settings" db=0.1ms idle=50.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.008 [debug] QUERY OK source="settings" db=0.0ms idle=50.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.008 [debug] QUERY OK source="settings" db=0.0ms idle=50.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.009 [info] Sent 200 in 2ms 12:40:38.121 [info] GET /sources/16/media/18720/edit 12:40:38.122 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "18720", "source_id" => "16"} Pipelines: [:browser] 12:40:38.122 [debug] QUERY OK source="media_items" db=0.1ms idle=164.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" = ?) [18720] 12:40:38.122 [debug] QUERY OK source="settings" db=0.0ms idle=115.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.122 [debug] QUERY OK source="settings" db=0.0ms idle=114.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.123 [debug] QUERY OK source="settings" db=0.0ms idle=115.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.123 [info] Sent 200 in 2ms 12:40:38.252 [info] GET /sources/41/media/129711/edit 12:40:38.252 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "129711", "source_id" => "41"} Pipelines: [:browser] 12:40:38.253 [debug] QUERY OK source="media_items" db=0.1ms idle=244.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" = ?) [129711] 12:40:38.253 [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:40:38.253 [debug] QUERY OK source="settings" db=0.0ms idle=131.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.254 [debug] QUERY OK source="settings" db=0.1ms idle=131.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.254 [info] Sent 200 in 2ms 12:40:38.416 [info] GET /sources/42/media/15754 12:40:38.416 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15754", "source_id" => "42"} Pipelines: [:browser] 12:40:38.417 [debug] QUERY OK source="media_items" db=0.1ms idle=293.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" = ?) [15754] 12:40:38.417 [debug] QUERY OK source="tasks" db=0.0ms idle=164.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" [15754] 12:40:38.417 [debug] QUERY OK source="sources" db=0.1ms idle=163.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:40:38.417 [debug] QUERY OK source="settings" db=0.1ms idle=163.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.418 [debug] QUERY OK source="settings" db=0.0ms idle=163.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.418 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.418 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:40:38.419 [info] Sent 200 in 2ms 12:40:38.613 [info] GET /sources/16/media/18719/edit 12:40:38.613 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "18719", "source_id" => "16"} Pipelines: [:browser] 12:40:38.614 [debug] QUERY OK source="media_items" db=0.1ms idle=196.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" = ?) [18719] 12:40:38.614 [debug] QUERY OK source="settings" db=0.0ms idle=196.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.614 [debug] QUERY OK source="settings" db=0.0ms idle=196.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.614 [debug] QUERY OK source="settings" db=0.0ms idle=196.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:38.615 [info] Sent 200 in 1ms 12:40:39.369 [info] GET /sources/16/media/18817/edit 12:40:39.370 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "18817", "source_id" => "16"} Pipelines: [:browser] 12:40:39.370 [debug] QUERY OK source="media_items" db=0.1ms idle=756.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" = ?) [18817] 12:40:39.370 [debug] QUERY OK source="settings" db=0.0ms idle=756.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:39.371 [debug] QUERY OK source="settings" db=0.0ms idle=756.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:39.371 [debug] QUERY OK source="settings" db=0.0ms idle=756.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:39.372 [info] Sent 200 in 2ms 12:40:39.531 [info] GET /sources/42/media/16864/edit 12:40:39.531 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "16864", "source_id" => "42"} Pipelines: [:browser] 12:40:39.532 [debug] QUERY OK source="media_items" db=0.1ms idle=841.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" = ?) [16864] 12:40:39.532 [debug] QUERY OK source="settings" db=0.1ms idle=161.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:39.532 [debug] QUERY OK source="settings" db=0.0ms idle=161.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:39.533 [debug] QUERY OK source="settings" db=0.0ms idle=162.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:39.533 [info] Sent 200 in 2ms 12:40:39.737 [info] GET /sources/16/media/18885/edit 12:40:39.737 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "18885", "source_id" => "16"} Pipelines: [:browser] 12:40:39.738 [debug] QUERY OK source="media_items" db=0.1ms idle=205.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" = ?) [18885] 12:40:39.738 [debug] QUERY OK source="settings" db=0.0ms idle=205.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:39.738 [debug] QUERY OK source="settings" db=0.0ms idle=205.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:39.738 [debug] QUERY OK source="settings" db=0.0ms idle=205.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:40:39.739 [info] Sent 200 in 2ms 12:41:00.322 [info] {"source":"oban","duration":244,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:41:00.714 [info] {"source":"oban","duration":402,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:41:08.219 [info] GET /sources/16/media/116008/edit 12:41:08.219 [info] GET /sources/42/media/15758 12:41:08.219 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "116008", "source_id" => "16"} Pipelines: [:browser] 12:41:08.219 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15758", "source_id" => "42"} Pipelines: [:browser] 12:41:08.220 [debug] QUERY OK source="media_items" db=0.3ms idle=665.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" = ?) [15758] 12:41:08.220 [debug] QUERY OK source="media_items" db=0.3ms idle=1.5e3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [116008] 12:41:08.221 [debug] QUERY OK source="tasks" db=0.3ms idle=666.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" [15758] 12:41:08.221 [debug] QUERY OK source="settings" db=0.3ms idle=666.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.221 [debug] QUERY OK source="sources" db=0.4ms idle=499.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:41:08.221 [debug] QUERY OK source="settings" db=0.1ms 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:41:08.221 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.221 [debug] QUERY OK source="settings" db=0.0ms 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:41:08.221 [debug] QUERY OK source="settings" db=0.0ms 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:41:08.222 [debug] QUERY OK source="settings" db=0.3ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.222 [info] Sent 200 in 2ms 12:41:08.222 [debug] QUERY OK source="media_profiles" db=0.0ms 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:41:08.223 [info] Sent 200 in 3ms 12:41:08.453 [info] GET /sources/41/media/15351/edit 12:41:08.453 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15351", "source_id" => "41"} Pipelines: [:browser] 12:41:08.454 [debug] QUERY OK source="media_items" db=0.1ms idle=232.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" = ?) [15351] 12:41:08.454 [debug] QUERY OK source="settings" db=0.0ms idle=232.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.454 [debug] QUERY OK source="settings" db=0.0ms idle=232.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.454 [debug] QUERY OK source="settings" db=0.0ms idle=232.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.455 [info] Sent 200 in 2ms 12:41:08.517 [info] GET /sources/42/media/15757/edit 12:41:08.517 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15757", "source_id" => "42"} Pipelines: [:browser] 12:41:08.518 [debug] QUERY OK source="media_items" db=0.1ms idle=295.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" = ?) [15757] 12:41:08.518 [debug] QUERY OK source="settings" db=0.0ms idle=64.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.518 [debug] QUERY OK source="settings" db=0.0ms idle=64.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.518 [debug] QUERY OK source="settings" db=0.0ms idle=64.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.519 [info] Sent 200 in 2ms 12:41:08.623 [info] GET /sources/41/media/15351 12:41:08.624 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15351", "source_id" => "41"} Pipelines: [:browser] 12:41:08.624 [debug] QUERY OK source="media_items" db=0.1ms idle=169.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" = ?) [15351] 12:41:08.624 [debug] QUERY OK source="tasks" db=0.1ms idle=106.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" [15351] 12:41:08.625 [debug] QUERY OK source="sources" db=0.2ms idle=106.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:41:08.625 [debug] QUERY OK source="settings" db=0.0ms idle=106.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.625 [debug] QUERY OK source="settings" db=0.0ms idle=106.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.625 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.626 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:41:08.634 [info] Sent 200 in 10ms 12:41:08.810 [info] GET /sources/5/media/71054/edit 12:41:08.810 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "71054", "source_id" => "5"} Pipelines: [:browser] 12:41:08.811 [debug] QUERY OK source="media_items" db=0.1ms idle=185.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" = ?) [71054] 12:41:08.811 [debug] QUERY OK source="settings" db=0.0ms idle=186.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.811 [debug] QUERY OK source="settings" db=0.0ms idle=185.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.812 [debug] QUERY OK source="settings" db=0.0ms idle=185.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:08.812 [info] Sent 200 in 2ms 12:41:09.217 [info] GET /sources/42/media/15757 12:41:09.217 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15757", "source_id" => "42"} Pipelines: [:browser] 12:41:09.218 [debug] QUERY OK source="media_items" db=0.1ms idle=495.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" = ?) [15757] 12:41:09.218 [debug] QUERY OK source="tasks" db=0.0ms idle=407.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" [15757] 12:41:09.218 [debug] QUERY OK source="sources" db=0.1ms idle=406.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:41:09.218 [debug] QUERY OK source="settings" db=0.0ms idle=406.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:09.218 [debug] QUERY OK source="settings" db=0.0ms idle=406.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:09.219 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:09.219 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:41:09.220 [info] Sent 200 in 2ms 12:41:09.331 [info] GET /sources/5/media/106329/edit 12:41:09.331 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "106329", "source_id" => "5"} Pipelines: [:browser] 12:41:09.332 [debug] QUERY OK source="media_items" db=0.1ms idle=113.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" = ?) [106329] 12:41:09.332 [debug] QUERY OK source="settings" db=0.0ms 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 [] 12:41:09.332 [debug] QUERY OK source="settings" db=0.0ms idle=113.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:09.332 [debug] QUERY OK source="settings" db=0.0ms idle=113.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:09.333 [info] Sent 200 in 2ms 12:41:09.570 [info] GET /sources/42/media/15754/edit 12:41:09.570 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15754", "source_id" => "42"} Pipelines: [:browser] 12:41:09.570 [debug] QUERY OK source="media_items" db=0.1ms idle=350.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" = ?) [15754] 12:41:09.571 [debug] QUERY OK source="settings" db=0.0ms idle=238.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:09.571 [debug] QUERY OK source="settings" db=0.0ms 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:41:09.571 [debug] QUERY OK source="settings" db=0.0ms idle=238.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:09.572 [info] Sent 200 in 2ms 12:41:09.980 [info] GET /sources/16/media/18717/edit 12:41:09.980 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "18717", "source_id" => "16"} Pipelines: [:browser] 12:41:09.981 [debug] QUERY OK source="media_items" db=0.1ms idle=410.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" = ?) [18717] 12:41:09.981 [debug] QUERY OK source="settings" db=0.0ms idle=410.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:09.981 [debug] QUERY OK source="settings" db=0.0ms idle=410.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:09.982 [debug] QUERY OK source="settings" db=0.0ms idle=410.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:09.982 [info] Sent 200 in 2ms 12:41:30.716 [info] {"source":"oban","duration":533,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:41:43.862 [info] GET /sources/42/media/15756/edit 12:41:43.862 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15756", "source_id" => "42"} Pipelines: [:browser] 12:41:43.863 [debug] QUERY OK source="media_items" db=0.2ms idle=1103.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" = ?) [15756] 12:41:43.863 [debug] QUERY OK source="settings" db=0.0ms idle=309.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:43.863 [debug] QUERY OK source="settings" db=0.0ms 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 [] 12:41:43.864 [debug] QUERY OK source="settings" db=0.0ms idle=309.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:43.864 [info] Sent 200 in 2ms 12:41:43.891 [info] GET /sources/42/media/15753/edit 12:41:43.891 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15753", "source_id" => "42"} Pipelines: [:browser] 12:41:43.892 [debug] QUERY OK source="media_items" db=0.1ms idle=130.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" = ?) [15753] 12:41:43.892 [debug] QUERY OK source="settings" db=0.0ms idle=28.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:43.892 [debug] QUERY OK source="settings" db=0.0ms idle=28.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:43.892 [debug] QUERY OK source="settings" db=0.1ms idle=28.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:43.893 [info] Sent 200 in 1ms 12:41:44.295 [info] GET /sources/42/media/15756 12:41:44.295 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15756", "source_id" => "42"} Pipelines: [:browser] 12:41:44.296 [debug] QUERY OK source="media_items" db=0.1ms idle=431.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" = ?) [15756] 12:41:44.296 [debug] QUERY OK source="tasks" db=0.0ms idle=404.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" [15756] 12:41:44.296 [debug] QUERY OK source="sources" db=0.1ms idle=403.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:41:44.296 [debug] QUERY OK source="settings" db=0.1ms idle=404.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.296 [debug] QUERY OK source="settings" db=0.0ms idle=403.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.297 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.297 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:41:44.298 [info] Sent 200 in 3ms 12:41:44.431 [info] GET /sources/42/media/15378/edit 12:41:44.431 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15378", "source_id" => "42"} Pipelines: [:browser] 12:41:44.431 [debug] QUERY OK source="media_items" db=0.1ms idle=135.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" = ?) [15378] 12:41:44.432 [debug] QUERY OK source="settings" db=0.0ms idle=135.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.432 [debug] QUERY OK source="settings" db=0.0ms idle=135.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.432 [debug] QUERY OK source="settings" db=0.0ms idle=135.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.433 [info] Sent 200 in 2ms 12:41:44.568 [info] GET /sources/42/media/15753 12:41:44.568 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15753", "source_id" => "42"} Pipelines: [:browser] 12:41:44.568 [debug] QUERY OK source="media_items" db=0.1ms idle=270.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" = ?) [15753] 12:41:44.568 [debug] QUERY OK source="tasks" db=0.0ms idle=136.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" [15753] 12:41:44.569 [debug] QUERY OK source="sources" db=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:41:44.569 [debug] QUERY OK source="settings" db=0.1ms idle=136.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.569 [debug] QUERY OK source="settings" db=0.0ms idle=136.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.569 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.570 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:41:44.571 [info] Sent 200 in 3ms 12:41:44.672 [info] GET /sources/42/media/15758/edit 12:41:44.672 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15758", "source_id" => "42"} Pipelines: [:browser] 12:41:44.672 [debug] QUERY OK source="media_items" db=0.2ms idle=103.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" = ?) [15758] 12:41:44.673 [debug] QUERY OK source="settings" db=0.1ms idle=103.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.673 [debug] QUERY OK source="settings" db=0.0ms idle=103.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.673 [debug] QUERY OK source="settings" db=0.0ms idle=103.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.674 [info] Sent 200 in 2ms 12:41:44.954 [info] GET /sources/1/media/102094/edit 12:41:44.954 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "102094", "source_id" => "1"} Pipelines: [:browser] 12:41:44.954 [debug] QUERY OK source="media_items" db=0.1ms idle=281.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" = ?) [102094] 12:41:44.955 [debug] QUERY OK source="settings" db=0.0ms idle=281.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.955 [debug] QUERY OK source="settings" db=0.0ms idle=281.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.955 [debug] QUERY OK source="settings" db=0.0ms idle=281.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:44.956 [info] Sent 200 in 2ms 12:41:45.021 [info] GET /sources/42/media/15378 12:41:45.021 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15378", "source_id" => "42"} Pipelines: [:browser] 12:41:45.022 [debug] QUERY OK source="media_items" db=0.1ms idle=258.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" = ?) [15378] 12:41:45.022 [debug] QUERY OK source="tasks" db=0.1ms idle=67.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" [15378] 12:41:45.022 [debug] QUERY OK source="sources" db=0.1ms idle=67.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:41:45.022 [debug] QUERY OK source="settings" db=0.0ms idle=67.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:45.022 [debug] QUERY OK source="settings" db=0.0ms idle=67.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:45.023 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:45.023 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:41:45.024 [info] Sent 200 in 2ms 12:41:45.153 [info] GET /sources/42/media/16863/edit 12:41:45.153 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "16863", "source_id" => "42"} Pipelines: [:browser] 12:41:45.153 [debug] QUERY OK source="media_items" db=0.1ms idle=131.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" = ?) [16863] 12:41:45.154 [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:41:45.154 [debug] QUERY OK source="settings" db=0.0ms 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:41:45.154 [debug] QUERY OK source="settings" db=0.1ms idle=131.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:45.155 [info] Sent 200 in 2ms 12:41:58.855 [info] GET /sources/42/media/15750/edit 12:41:58.855 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15750", "source_id" => "42"} Pipelines: [:browser] 12:41:58.855 [debug] QUERY OK source="media_items" db=0.2ms idle=301.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" = ?) [15750] 12:41:58.856 [debug] QUERY OK source="settings" db=0.0ms idle=301.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:58.856 [debug] QUERY OK source="settings" db=0.0ms idle=301.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:58.856 [debug] QUERY OK source="settings" db=0.0ms idle=302.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:58.857 [info] Sent 200 in 2ms 12:41:58.905 [info] GET /sources/new 12:41:58.905 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "42"} Pipelines: [:browser] 12:41:58.905 [debug] QUERY OK source="sources" db=0.1ms idle=127.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:41:58.906 [debug] QUERY OK source="media_profiles" db=0.1ms idle=50.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:41:58.906 [debug] QUERY OK source="settings" db=0.0ms idle=50.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:58.906 [debug] QUERY OK source="settings" db=0.0ms idle=50.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:58.906 [debug] QUERY OK source="settings" db=0.0ms idle=49.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:58.907 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:58.907 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:58.909 [info] Sent 200 in 4ms 12:41:59.557 [info] GET /sources/new 12:41:59.557 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "41"} Pipelines: [:browser] 12:41:59.557 [info] GET /sources/42/media/15750 12:41:59.557 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15750", "source_id" => "42"} Pipelines: [:browser] 12:41:59.557 [debug] QUERY OK source="sources" db=0.1ms idle=651.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:41:59.558 [debug] QUERY OK source="media_profiles" db=0.2ms idle=651.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 12:41:59.558 [debug] QUERY OK source="media_items" db=0.3ms idle=651.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" = ?) [15750] 12:41:59.558 [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 [] 12:41:59.558 [debug] QUERY OK source="tasks" db=0.2ms idle=651.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" [15750] 12:41:59.558 [debug] QUERY OK source="settings" db=0.3ms 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:41:59.558 [debug] QUERY OK source="sources" db=0.4ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:41:59.559 [debug] QUERY OK source="settings" db=0.0ms 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:41:59.559 [debug] QUERY OK source="settings" db=0.0ms 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:41:59.559 [debug] QUERY OK source="settings" db=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:41:59.559 [debug] QUERY OK source="settings" db=0.1ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:41:59.559 [debug] QUERY OK source="settings" db=0.0ms 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:41:59.559 [debug] QUERY OK source="settings" db=0.0ms 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:41:59.560 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:41:59.561 [info] Sent 200 in 3ms 12:41:59.561 [info] Sent 200 in 4ms 12:42:00.180 [info] GET /sources/42/media/15755/edit 12:42:00.180 [info] GET /sources/42/media/15755 12:42:00.180 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15755", "source_id" => "42"} Pipelines: [:browser] 12:42:00.180 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15755", "source_id" => "42"} Pipelines: [:browser] 12:42:00.181 [debug] QUERY OK source="media_items" db=0.4ms idle=621.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" = ?) [15755] 12:42:00.181 [debug] QUERY OK source="media_items" db=0.4ms idle=621.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" = ?) [15755] 12:42:00.181 [debug] QUERY OK source="tasks" db=0.2ms idle=621.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" [15755] 12:42:00.181 [debug] QUERY OK source="settings" db=0.3ms idle=621.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:00.181 [debug] QUERY OK source="sources" db=0.3ms idle=402.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:42:00.181 [debug] QUERY OK source="settings" db=0.0ms 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:42:00.182 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:00.182 [debug] QUERY OK source="settings" db=0.1ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:00.182 [debug] QUERY OK source="settings" db=0.1ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:00.182 [debug] QUERY OK source="settings" db=0.0ms 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:42:00.183 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.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:42:00.183 [info] Sent 200 in 2ms 12:42:00.183 [info] Sent 200 in 3ms 12:42:00.323 [info] {"source":"oban","duration":178,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:42:00.376 [info] GET /sources/41/media/15354/edit 12:42:00.376 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "15354", "source_id" => "41"} Pipelines: [:browser] 12:42:00.377 [debug] QUERY OK source="media_items" db=0.1ms idle=194.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" = ?) [15354] 12:42:00.377 [debug] QUERY OK source="settings" db=0.0ms idle=195.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:00.377 [debug] QUERY OK source="settings" db=0.0ms idle=195.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:00.378 [debug] QUERY OK source="settings" db=0.0ms idle=195.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:00.378 [info] Sent 200 in 2ms 12:42:00.717 [info] {"source":"oban","duration":622,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:42:00.893 [info] GET /sources/41/media/15354 12:42:00.893 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "15354", "source_id" => "41"} Pipelines: [:browser] 12:42:00.894 [debug] QUERY OK source="media_items" db=0.1ms idle=516.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" = ?) [15354] 12:42:00.894 [debug] QUERY OK source="tasks" db=0.0ms idle=516.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" [15354] 12:42:00.894 [debug] QUERY OK source="sources" db=0.1ms idle=516.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:42:00.894 [debug] QUERY OK source="settings" db=0.0ms idle=177.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:00.894 [debug] QUERY OK source="settings" db=0.0ms idle=113.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:00.895 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:00.895 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:42:00.909 [info] Sent 200 in 16ms 12:42:01.099 [info] GET /sources/16/media/18721 12:42:01.099 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18721", "source_id" => "16"} Pipelines: [:browser] 12:42:01.100 [debug] QUERY OK source="media_items" db=0.1ms idle=205.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" = ?) [18721] 12:42:01.100 [debug] QUERY OK source="tasks" db=0.0ms idle=205.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" [18721] 12:42:01.100 [debug] QUERY OK source="sources" db=0.1ms idle=205.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:42:01.100 [debug] QUERY OK source="settings" db=0.0ms idle=205.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:01.101 [debug] QUERY OK source="settings" db=0.0ms idle=205.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:01.101 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:01.101 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:42:01.111 [info] Sent 200 in 12ms 12:42:30.718 [info] {"source":"oban","duration":598,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:42:39.152 [info] GET /sources/42/media/16864/force_download 12:42:39.152 [info] GET /sources/16/media/18817/force_download 12:42:39.153 [debug] QUERY OK source="settings" db=0.2ms idle=598.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:39.153 [debug] QUERY OK source="settings" db=0.3ms idle=598.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:39.153 [debug] QUERY OK source="settings" db=0.0ms idle=598.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:39.153 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:42:39.153 [debug] QUERY OK source="settings" db=0.0ms idle=598.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:39.153 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:42:39.153 [error] #PID<0.190497.0> running PinchflatWeb.Endpoint (connection #PID<0.190496.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/42/media/16864/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/42/media/16864/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190496.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/media/16864/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46914}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190497.0>, params: %{}, path_info: ["sources", "42", "media", "16864", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/42/media/16864/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJ4TzYT8LVa9AAQSwC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190496.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/media/16864/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46914}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/42/media/16864/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190496.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/media/16864/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46914}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190497.0>, params: %{}, path_info: ["sources", "42", "media", "16864", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_pat (truncated) 12:42:39.153 [error] #PID<0.190498.0> running PinchflatWeb.Endpoint (connection #PID<0.190495.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/16/media/18817/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/16/media/18817/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/16/media/18817/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190498.0>, params: %{}, path_info: ["sources", "16", "media", "18817", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/16/media/18817/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJ4TzYT3xUDYAAVm4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/16/media/18817/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/16/media/18817/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/16/media/18817/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190498.0>, params: %{}, path_info: ["sources", "16", "media", "18817", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_pat (truncated) 12:42:39.303 [info] GET /sources/16/media/18885/force_download 12:42:39.303 [debug] QUERY OK source="settings" db=0.1ms idle=481.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:39.303 [debug] QUERY OK source="settings" db=0.0ms idle=150.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:39.303 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:42:39.303 [error] #PID<0.190499.0> running PinchflatWeb.Endpoint (connection #PID<0.190495.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/16/media/18885/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/16/media/18885/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/16/media/18885/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190499.0>, params: %{}, path_info: ["sources", "16", "media", "18885", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/16/media/18885/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJ4UXNOCWvx0EAKdcD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/16/media/18885/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/16/media/18885/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/16/media/18885/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190499.0>, params: %{}, path_info: ["sources", "16", "media", "18885", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_pat (truncated) 12:42:39.584 [info] GET /sources/5/media/106329/force_download 12:42:39.584 [debug] QUERY OK source="settings" db=0.1ms idle=431.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:39.584 [debug] QUERY OK source="settings" db=0.0ms idle=431.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:39.584 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:42:39.585 [error] #PID<0.190500.0> running PinchflatWeb.Endpoint (connection #PID<0.190495.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/5/media/106329/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/106329/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/106329/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190500.0>, params: %{}, path_info: ["sources", "5", "media", "106329", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/5/media/106329/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJ4VaQBcp2tmwAKdeD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/106329/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/5/media/106329/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/5/media/106329/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190500.0>, params: %{}, path_info: ["sources", "5", "media", "106329", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_pat (truncated) 12:42:39.908 [info] GET /sources/41/media/129560/force_download 12:42:39.909 [debug] QUERY OK source="settings" db=0.1ms idle=605.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:39.909 [debug] QUERY OK source="settings" db=0.0ms idle=605.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:39.909 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:42:39.909 [error] #PID<0.190501.0> running PinchflatWeb.Endpoint (connection #PID<0.190495.0>, stream id 4) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/41/media/129560/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/41/media/129560/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/media/129560/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190501.0>, params: %{}, path_info: ["sources", "41", "media", "129560", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/41/media/129560/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJ4WnnsSP3gyoAKdgD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/media/129560/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/41/media/129560/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/media/129560/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 4, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190501.0>, params: %{}, path_info: ["sources", "41", "media", "129560", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], re (truncated) 12:42:42.667 [info] GET /sources/41/media/129711/force_download 12:42:42.668 [debug] QUERY OK source="settings" db=0.1ms idle=1113.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:42.668 [debug] QUERY OK source="settings" db=0.0ms idle=1113.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:42.668 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:42:42.668 [error] #PID<0.190504.0> running PinchflatWeb.Endpoint (connection #PID<0.190495.0>, stream id 5) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/41/media/129711/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/41/media/129711/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/media/129711/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190504.0>, params: %{}, path_info: ["sources", "41", "media", "129711", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/41/media/129711/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJ4g5Y5bctXQoAKdiD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/media/129711/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/41/media/129711/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/41/media/129711/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 5, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190504.0>, params: %{}, path_info: ["sources", "41", "media", "129711", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], re (truncated) 12:42:42.771 [info] GET /sources/30494a42-dc4d-46ab-90f2-48beef0b1af2/feed.xml 12:42:42.771 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.rss_feed/2 Parameters: %{"uuid" => "30494a42-dc4d-46ab-90f2-48beef0b1af2"} Pipelines: [:maybe_basic_auth] 12:42:42.772 [debug] QUERY OK source="sources" db=0.2ms idle=1217.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."uuid" = ?) ["30494a42-dc4d-46ab-90f2-48beef0b1af2"] 12:42:42.772 [debug] QUERY OK source="media_items" db=0.4ms idle=1217.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? [42, 2000] 12:42:42.774 [debug] QUERY OK source="source_metadata" db=1.5ms idle=947.8ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [42] 12:42:42.774 [info] Sent 200 in 2ms 12:42:43.097 [info] GET /sources/18/media/16964/force_download 12:42:43.098 [debug] QUERY OK source="settings" db=0.1ms idle=429.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:43.098 [debug] QUERY OK source="settings" db=0.0ms idle=325.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:43.098 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:42:43.098 [error] #PID<0.190506.0> running PinchflatWeb.Endpoint (connection #PID<0.190495.0>, stream id 7) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/18/media/16964/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/18/media/16964/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/18/media/16964/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190506.0>, params: %{}, path_info: ["sources", "18", "media", "16964", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/18/media/16964/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJ4if6hLMX9DEAKdmD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/18/media/16964/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/18/media/16964/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190495.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/18/media/16964/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 46910}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 7, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190506.0>, params: %{}, path_info: ["sources", "18", "media", "16964", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_pat (truncated) 12:42:43.186 [info] GET /sources/9d99e2bf-68e0-4902-bea7-c0b6ce2ad5d7/feed.xml 12:42:43.186 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.rss_feed/2 Parameters: %{"uuid" => "9d99e2bf-68e0-4902-bea7-c0b6ce2ad5d7"} Pipelines: [:maybe_basic_auth] 12:42:43.187 [debug] QUERY OK source="sources" db=0.1ms idle=413.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."uuid" = ?) ["9d99e2bf-68e0-4902-bea7-c0b6ce2ad5d7"] 12:42:43.189 [debug] QUERY OK source="media_items" db=1.9ms idle=412.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? [41, 2000] 12:42:44.613 [debug] QUERY OK source="source_metadata" db=0.2ms idle=786.1ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [41] 12:42:44.614 [debug] QUERY OK source="media_metadata" db=0.0ms idle=59.3ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [129560] 12:42:44.614 [info] Sent 200 in 1427ms 12:42:49.720 [info] GET /sources/18/media/16964 12:42:49.720 [info] GET /media/3ac2af09-b928-4f02-923b-9c40005075a9/stream 12:42:49.720 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16964", "prevent_download" => "true", "source_id" => "18"} Pipelines: [:browser] 12:42:49.720 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "3ac2af09-b928-4f02-923b-9c40005075a9"} Pipelines: [:maybe_basic_auth] 12:42:49.721 [debug] QUERY OK source="media_items" db=0.3ms idle=1166.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" = ?) [16964] 12:42:49.721 [debug] QUERY OK source="media_items" db=0.5ms idle=1166.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["3ac2af09-b928-4f02-923b-9c40005075a9"] 12:42:49.721 [debug] QUERY OK source="tasks" db=0.1ms idle=1166.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" [16964] 12:42:49.721 [debug] QUERY OK source="sources" db=0.2ms idle=1166.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [18] 12:42:49.722 [debug] QUERY OK source="settings" db=0.0ms idle=887.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:49.722 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:49.722 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:49.723 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:42:49.724 [info] Sent 200 in 3ms 12:42:49.729 [debug] Invalid range request for media item: 3ac2af09-b928-4f02-923b-9c40005075a9 - serving full file 12:42:49.729 [info] Sent 200 in 8ms 12:42:49.899 [info] GET /media/6a10ee71-07e7-4690-8565-7518f43527f1/stream 12:42:49.899 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "6a10ee71-07e7-4690-8565-7518f43527f1"} Pipelines: [:maybe_basic_auth] 12:42:49.899 [debug] QUERY OK source="media_items" db=0.1ms idle=177.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" = ?) ["6a10ee71-07e7-4690-8565-7518f43527f1"] 12:42:49.987 [info] GET /media/945513dd-3113-46f4-aa38-6ecc96a1d82e/stream 12:42:49.988 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "945513dd-3113-46f4-aa38-6ecc96a1d82e"} Pipelines: [:maybe_basic_auth] 12:42:49.990 [debug] QUERY OK source="media_items" db=2.4ms idle=265.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["945513dd-3113-46f4-aa38-6ecc96a1d82e"] 12:42:50.087 [debug] Invalid range request for media item: 6a10ee71-07e7-4690-8565-7518f43527f1 - serving full file 12:42:50.087 [debug] Invalid range request for media item: 945513dd-3113-46f4-aa38-6ecc96a1d82e - serving full file 12:42:50.087 [info] Sent 200 in 99ms 12:42:50.087 [info] Sent 200 in 187ms 12:42:50.196 [info] GET /media/632045df-c4d9-4700-b1b1-31f951fe37ca/stream 12:42:50.196 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "632045df-c4d9-4700-b1b1-31f951fe37ca"} Pipelines: [:maybe_basic_auth] 12:42:50.196 [debug] QUERY OK source="media_items" db=0.2ms idle=473.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["632045df-c4d9-4700-b1b1-31f951fe37ca"] 12:42:50.274 [debug] Invalid range request for media item: 632045df-c4d9-4700-b1b1-31f951fe37ca - serving full file 12:42:50.275 [info] Sent 200 in 78ms 12:42:50.275 [info] GET /media/76debb71-0660-4772-9f01-8eadf75603c2/stream 12:42:50.275 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "76debb71-0660-4772-9f01-8eadf75603c2"} Pipelines: [:maybe_basic_auth] 12:42:50.275 [debug] QUERY OK source="media_items" db=0.1ms idle=552.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" = ?) ["76debb71-0660-4772-9f01-8eadf75603c2"] 12:42:50.383 [debug] Invalid range request for media item: 76debb71-0660-4772-9f01-8eadf75603c2 - serving full file 12:42:50.383 [info] Sent 200 in 107ms 12:42:50.383 [info] GET /sources/1/media/102094/force_download 12:42:50.384 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=548.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:50.384 [debug] QUERY OK source="settings" db=0.1ms idle=484.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:50.384 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:42:50.384 [error] #PID<0.190524.0> running PinchflatWeb.Endpoint (connection #PID<0.190523.0>, stream id 1) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/1/media/102094/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/102094/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190523.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/102094/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 53966}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190524.0>, params: %{}, path_info: ["sources", "1", "media", "102094", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/1/media/102094/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJ49pBzk9umWEAVnEB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190523.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/102094/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 53966}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/102094/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190523.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/102094/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 53966}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 1, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190524.0>, params: %{}, path_info: ["sources", "1", "media", "102094", "force_download"], path_params: %{}, port: 80, (truncated) 12:42:50.495 [info] GET /sources/42/media/16863/force_download 12:42:50.496 [debug] QUERY OK source="settings" db=0.1ms idle=505.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:50.496 [debug] QUERY OK source="settings" db=0.0ms 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 [] 12:42:50.496 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:42:50.496 [error] #PID<0.190525.0> running PinchflatWeb.Endpoint (connection #PID<0.190523.0>, stream id 2) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/42/media/16863/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/42/media/16863/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190523.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/media/16863/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 53966}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190525.0>, params: %{}, path_info: ["sources", "42", "media", "16863", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/42/media/16863/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJ4-Dyu6jBL1sAVnGB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190523.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/media/16863/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 53966}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/42/media/16863/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190523.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/42/media/16863/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 53966}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 2, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190525.0>, params: %{}, path_info: ["sources", "42", "media", "16863", "force_download"], path_params: %{}, port: 80, (truncated) 12:42:50.652 [info] GET /sources/16/media/116008/force_download 12:42:50.653 [debug] QUERY OK source="settings" db=0.1ms idle=377.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:50.653 [debug] QUERY OK source="settings" db=0.0ms idle=269.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:42:50.653 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 12:42:50.653 [error] #PID<0.190526.0> running PinchflatWeb.Endpoint (connection #PID<0.190523.0>, stream id 3) terminated Server: pinchflat.econ.llc:80 (http) Request: GET /sources/16/media/116008/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/16/media/116008/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190523.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/16/media/116008/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 53966}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190526.0>, params: %{}, path_info: ["sources", "16", "media", "116008", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.econ.llc", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 19, 0, 72}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, zstd, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4"}, {"host", "pinchflat.econ.llc"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"}, {"via", "2.0 Caddy"}, {"x-forwarded-for", "216.73.216.163"}, {"x-forwarded-host", "pinchflat.econ.llc"}, {"x-forwarded-proto", "https"} ], request_path: "/sources/16/media/116008/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GMFJ4-pO9aMLMwkAVnIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190523.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/16/media/116008/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 53966}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/16/media/116008/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.190523.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/16/media/116008/force_download", host: "pinchflat.econ.llc", peer: {{172, 19, 0, 72}, 53966}, bindings: %{}, sock: {{172, 19, 0, 36}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, zstd, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4", "host" => "pinchflat.econ.llc", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "via" => "2.0 Caddy", "x-forwarded-for" => "216.73.216.163", "x-forwarded-host" => "pinchflat.econ.llc", "x-forwarded-proto" => "https" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", has_body: false, streamid: 3, host_info: :undefined }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYb0d5NW9fY0J5U1lYb3BvMVh0c3Q3RjR1._SQrTfGEwk43zQMnwBobeP32anwpCHVNdFXBiwQjpj4" }, halted: false, host: "pinchflat.econ.llc", method: "GET", owner: #PID<0.190526.0>, params: %{}, path_info: ["sources", "16", "media", "116008", "force_download"], path_params: %{}, port: 80, (truncated) 12:43:00.324 [info] {"source":"oban","duration":258,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 12:43:00.566 [info] GET /sources/1/media/102094 12:43:00.566 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "102094", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 12:43:00.567 [debug] QUERY OK source="media_items" db=0.1ms idle=1720.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" = ?) [102094] 12:43:00.567 [debug] QUERY OK source="tasks" db=0.0ms idle=986.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" [102094] 12:43:00.567 [debug] QUERY OK source="sources" db=0.1ms idle=987.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:43:00.567 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=720.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" = ?) [14189] 12:43:00.568 [debug] QUERY OK source="settings" db=0.0ms idle=243.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.568 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.568 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.569 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:43:00.576 [info] Sent 200 in 9ms 12:43:00.577 [info] GET /sources/42/media/16864 12:43:00.577 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16864", "prevent_download" => "true", "source_id" => "42"} Pipelines: [:browser] 12:43:00.577 [debug] QUERY OK source="media_items" db=0.1ms idle=9.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [16864] 12:43:00.578 [debug] QUERY OK source="tasks" db=0.0ms idle=9.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" [16864] 12:43:00.578 [debug] QUERY OK source="sources" db=0.1ms idle=9.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:43:00.578 [debug] QUERY OK source="settings" db=0.0ms idle=9.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.578 [debug] QUERY OK source="settings" db=0.0ms idle=9.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.579 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.579 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:43:00.580 [info] Sent 200 in 2ms 12:43:00.705 [info] GET /sources/42/media/16863 12:43:00.706 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "16863", "prevent_download" => "true", "source_id" => "42"} Pipelines: [:browser] 12:43:00.706 [debug] QUERY OK source="media_items" db=0.1ms idle=127.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" = ?) [16863] 12:43:00.706 [debug] QUERY OK source="tasks" db=0.0ms idle=128.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" [16863] 12:43:00.706 [debug] QUERY OK source="sources" db=0.1ms idle=127.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [42] 12:43:00.707 [debug] QUERY OK source="settings" db=0.0ms idle=128.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.707 [debug] QUERY OK source="settings" db=0.0ms idle=127.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.707 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.708 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:43:00.708 [info] Sent 200 in 2ms 12:43:00.718 [info] {"source":"oban","duration":489,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 12:43:00.820 [info] GET /sources/16/media/18817 12:43:00.820 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18817", "prevent_download" => "true", "source_id" => "16"} Pipelines: [:browser] 12:43:00.821 [debug] QUERY OK source="media_items" db=0.1ms idle=113.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" = ?) [18817] 12:43:00.821 [debug] QUERY OK source="tasks" db=0.1ms idle=114.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" [18817] 12:43:00.821 [debug] QUERY OK source="sources" db=0.1ms idle=113.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:43:00.821 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=113.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 (?,?,?,?,?)) [13605, 14015, 14409, 14441, 14474] 12:43:00.822 [debug] QUERY OK source="settings" db=0.0ms idle=103.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.822 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.823 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:00.823 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:43:00.824 [info] Sent 200 in 4ms 12:43:01.154 [info] GET /sources/16/media/116008 12:43:01.154 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "116008", "prevent_download" => "true", "source_id" => "16"} Pipelines: [:browser] 12:43:01.155 [debug] QUERY OK source="media_items" db=0.1ms idle=332.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" = ?) [116008] 12:43:01.155 [debug] QUERY OK source="tasks" db=0.1ms idle=332.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" [116008] 12:43:01.155 [debug] QUERY OK source="sources" db=0.1ms idle=332.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:43:01.155 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=332.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" = ?) [14407] 12:43:01.155 [debug] QUERY OK source="settings" db=0.0ms idle=307.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.156 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.156 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.156 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:43:01.163 [info] Sent 200 in 8ms 12:43:01.468 [info] GET /sources/16/media/18885 12:43:01.468 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "18885", "prevent_download" => "true", "source_id" => "16"} Pipelines: [:browser] 12:43:01.469 [debug] QUERY OK source="media_items" db=0.2ms idle=313.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" = ?) [18885] 12:43:01.469 [debug] QUERY OK source="tasks" db=0.1ms idle=313.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" [18885] 12:43:01.469 [debug] QUERY OK source="sources" db=0.2ms idle=313.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [16] 12:43:01.469 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=313.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 (?,?,?,?,?)) [13606, 14047, 14442, 14475, 14506] 12:43:01.470 [debug] QUERY OK source="settings" db=0.0ms idle=313.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.470 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.470 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.471 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:43:01.472 [info] Sent 200 in 4ms 12:43:01.564 [info] GET /sources/5/media/106329 12:43:01.564 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "106329", "prevent_download" => "true", "source_id" => "5"} Pipelines: [:browser] 12:43:01.565 [debug] QUERY OK source="media_items" db=0.1ms idle=95.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" = ?) [106329] 12:43:01.565 [debug] QUERY OK source="tasks" db=0.1ms idle=95.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" [106329] 12:43:01.565 [debug] QUERY OK source="sources" db=0.2ms idle=95.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [5] 12:43:01.566 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=95.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" = ?) [14260] 12:43:01.566 [debug] QUERY OK source="settings" db=0.0ms idle=94.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.566 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.566 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.567 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:43:01.573 [info] Sent 200 in 8ms 12:43:01.680 [info] GET /sources/41/media/129711 12:43:01.680 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "129711", "prevent_download" => "true", "source_id" => "41"} Pipelines: [:browser] 12:43:01.681 [debug] QUERY OK source="media_items" db=0.1ms idle=114.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" = ?) [129711] 12:43:01.681 [debug] QUERY OK source="tasks" db=0.0ms idle=115.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" [129711] 12:43:01.681 [debug] QUERY OK source="sources" db=0.1ms idle=114.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:43:01.681 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=115.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" = ?) [14618] 12:43:01.682 [debug] QUERY OK source="settings" db=0.0ms idle=114.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.682 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.682 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.683 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:43:01.692 [info] Sent 200 in 11ms 12:43:01.777 [info] GET /sources/41/media/129560 12:43:01.777 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "129560", "prevent_download" => "true", "source_id" => "41"} Pipelines: [:browser] 12:43:01.777 [debug] QUERY OK source="media_items" db=0.1ms idle=95.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" = ?) [129560] 12:43:01.778 [debug] QUERY OK source="tasks" db=0.0ms idle=96.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" [129560] 12:43:01.778 [debug] QUERY OK source="sources" db=0.1ms idle=95.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [41] 12:43:01.778 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=95.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" = ?) [14617] 12:43:01.778 [debug] QUERY OK source="settings" db=0.0ms idle=95.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.779 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.779 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:01.779 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:43:01.782 [info] Sent 200 in 5ms 12:43:24.764 [info] GET /sources/1/media/2 12:43:24.764 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2", "source_id" => "1"} Pipelines: [:browser] 12:43:24.765 [debug] QUERY OK source="media_items" db=0.1ms idle=1184.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" = ?) [2] 12:43:24.765 [debug] QUERY OK source="tasks" db=0.0ms idle=1185.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" [2] 12:43:24.765 [debug] QUERY OK source="sources" db=0.1ms idle=1185.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 12:43:24.766 [debug] QUERY OK source="settings" db=0.0ms idle=1185.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:24.766 [debug] QUERY OK source="settings" db=0.0ms idle=894.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:24.766 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:24.767 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:43:24.773 [info] GET /media_profiles/1/edit 12:43:24.773 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 12:43:24.774 [debug] QUERY OK source="media_profiles" db=0.1ms idle=8.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 12:43:24.774 [info] Sent 200 in 9ms 12:43:24.774 [debug] QUERY OK source="settings" db=0.1ms idle=8.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:24.774 [debug] QUERY OK source="settings" db=0.0ms idle=8.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:24.775 [debug] QUERY OK source="settings" db=0.0ms idle=8.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:24.776 [info] Sent 200 in 2ms 12:43:24.995 [info] GET /media_profiles/new 12:43:24.996 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{} Pipelines: [:browser] 12:43:24.996 [debug] QUERY OK source="settings" db=0.1ms idle=221.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:24.996 [debug] QUERY OK source="settings" db=0.1ms idle=221.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:24.996 [debug] QUERY OK source="settings" db=0.1ms idle=221.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:24.997 [debug] QUERY OK source="settings" db=0.1ms idle=222.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:24.997 [debug] QUERY OK source="settings" db=0.0ms idle=124.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 12:43:24.998 [info] Sent 200 in 3ms